rt,评测记录
#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
string s;
char cmda,cmdb;
vector<char> vec;
int main(){
int a,b,c;
cin>>a>>b>>c;
cin>>s;
for(int i=0;i<s.length();++i){
if(s[i]=='-'){
cmda = s[i-1],cmdb = s[i+1];
if(cmdb-cmda==1){
continue;
//vec.push_back(cmda);
//vec.push_back(cmdb);
}else if(cmda=='-' || cmdb=='-'){
vec.push_back(s[i]);
}else if(cmdb<=cmda){
//vec.push_back(cmda);
vec.push_back('-');
//vec.push_back(cmdb);
}else{
//vec.push_back(cmda);
if(c==1){
int mx = (int)(cmdb-cmda+1-2);
for(int j=1;j<=mx;++j){
if(cmda>='1' && cmda<='9' && cmdb>='1' && cmdb<='9'){
for(int k=1;k<=b;++k) vec.push_back(j+cmda);
}else if(a==1){
for(int k=1;k<=b;++k){
if(j+cmda>='A' && j+cmda<='Z'){
vec.push_back(j+32+cmda);
}else{
vec.push_back(j+cmda);
}
}
}else if(a==2){
for(int k=1;k<=b;++k){
if(j+cmda>='a' && j+cmda<='z'){
vec.push_back(j-32+cmda);
}else{
vec.push_back(j+cmda);
}
}
}else if(a==3){
for(int k=1;k<=b;++k) vec.push_back('*');
}
}
}else if(c==2){
int mx = (int)(cmdb-cmda+1-2);
for(int j=mx;j>=1;--j){
if(cmda>='1' && cmda<='9' && cmdb>='1' && cmdb<='9'){
for(int k=1;k<=b;++k) vec.push_back(j+cmda);
}else if(a==1){
for(int k=1;k<=b;++k){
if(j+cmda>='A' && j+cmda<='B'){
vec.push_back(j+32+cmda);
}else{
vec.push_back(j+cmda);
}
}
}else if(a==2){
for(int k=1;k<=b;++k){
if(j+cmda>='a' && j+cmda<='z'){
vec.push_back(j-32+cmda);
}else{
vec.push_back(j+cmda);
}
}
}else if(a==3){
for(int k=1;k<=b;++k) vec.push_back('*');
}
}
}
//vec.push_back(cmdb);
//i+=1;
}
}else{
vec.push_back(s[i]);
}
}
for(auto i=vec.begin();i!=vec.end();++i){
cout<<*i;
}
return 0;
}
希望有dalao指导,谢谢