#include<bits/stdc++.h>
using namespace std;
string s,tmp;
int p1,p2,p3;
int main(){
int i,k;
char j;
cin>>p1>>p2>>p3;
cin>>s;
for(i=0;i<s.size();i++){
if(s[i]=='-'){
if((s[i-1]>='0'&&s[i-1]<='9'&&s[i+1]>='0'&&s[i+1]<='9')||(s[i-1]>='a'&&s[i-1]<='z'&&s[i+1]>='a'&&s[i+1]<='z')){
if(s[i+1]-s[i-1]==1){ //'-'两侧如果是ascii相邻的字符,且是升序
continue;
}
else if(s[i+1]<=s[i-1]){
continue;
}else if(s[i+1]-s[i-1]>1){
tmp.clear();
if(p3==1){
for(j=s[i-1]+1;j<s[i+1];j++){
for(k=1;k<=p2;k++){
if(j>='0'&&j<='9'&&p1==2){
tmp=tmp+j;
}else if(p1==1){
tmp=tmp+j;
}else if(p1==2){
tmp=tmp+char(j-32);
}else if(p1==3){
tmp=tmp+'*';
}
}
}
s.erase(i,1);
s.insert(i,tmp);
}
if(p3==2){
for(j=s[i+1]-1;j>s[i-1];j--){
for(k=1;k<=p2;k++){
if(j>='0'&&j<='9'&&p1==2){
tmp=tmp+j;
}else if(p1==1){
tmp=tmp+j;
}else if(p1==2){
tmp=tmp+char(j-32);
}else if(p1==3){
tmp=tmp+'*';
}
}
}
s.erase(i,1);
s.insert(i,tmp);
}
}
}
}
}
cout<<s;
return 0;
}
在线等,急!