#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
bool chk(char a, char b){
int q, w;
if(a >= 'a' && a <= 'z')
q = 1;
if(a >= 'A' && a <= 'Z')
q = 2;
if(a >= '0' && a <= '9')
q = 3;
if(b >= 'a' && b <= 'z')
w = 1;
if(b >= 'A' && b <= 'Z')
w = 2;
if(b >= '0' && b <= '9')
w = 3;
if(q == w)
return true;
return false;
}
int p1, p2, p3, cur = 1;
string s[1000005], ans;
char c;
int main(){
cin >> p1 >> p2 >> p3;
c = getchar();
while((c = getchar()) != '\n'){
if(c == '-'){
cur ++;
continue;
}
s[cur] += c;
//cout << s[cur] << ' ';
}
ans = s[1];
//for(int i = 1;i <= cur;i ++)
//cout << s[i] << endl;
for(int i = 2;i <= cur;i ++){
string x;
for(int j = int(s[i-1][s[i-1].size()-1]) + 1;j < int(s[i][0]);j ++){
//cout << j << endl;
for(int k = 1;k <= p2;k ++){
if(p1 == 1){
if(j >= '0' && j <= '9')
x += char(j);
else
x += char((j >= int('a') && j <= int('z')) ? (j) : (j + 32));
}
if(p1 == 2){
if(j >= '0' && j <= '9')
x += char(j);
else
x += char((j >= int('A') && j <= int('Z')) ? (j) : (j - 32));
}
if(p1 == 3)
x += '*';
}
}
if((int(s[i-1][s[i-1].size()-1]) > int(s[i][0]))
|| int(s[i-1][s[i-1].size()-1]) == int(s[i][0]))
x = '-';
//cout << x <<' ';
if(!chk(s[i-1][s[i-1].size()-1], s[i][0])){
//cout << 1;
x = '-';
}
//cout << x << endl;
//cout << s[i-1][s[i-1].size()-1] << ' '<<s[i][0]<<endl;
if(p3 == 2)
reverse(x.begin(), x.end());
ans += x;
ans += s[i];
}
cout << ans;
return 0;
}
救,下载了数据, 输入输出一样,但为什么爆零??