#include <bits/stdc++.h>
using namespace std;
int p1, p2, p3, m, flag = -1;
string a, c;
string zfc[205];
int main(){
cin >> p1 >> p2 >> p3 >> a;
for(int i = 0;i < a.size();i++){
if(a[i] == '-'){
if(a[i + 1] <= a[i - 1]) continue;
char q = a[i - 1];
char h = a[i + 1];
if((q + 1) == h){
a.erase(i, 1);
}
}
}
c = a;
for(int i = 0;i < c.size();i++){
if(c[i] == '-'){
string b = "";
zfc[++m] = c.substr(flag + 1, i - (flag + 1));
if(c[i + 1] <= c[i - 1] || (abs(c[i - 1] - c[i + 1]) >= 40)){
zfc[++m] = '-';
flag = i;
continue;
}
char q = c[i - 1];
char h = c[i + 1];
if((q >= '0' && q <= '9' && h >= '0' && h <= '9') || (q >= 'a' && q <= 'z' && h >= 'a' && h <= 'z')){
for(char j = q + 1;j < h;j++){
if(j >= 'a' && j <= 'z'){
if(p1 == 1){
b += string(p2, j);
} else if(p1 == 2){
b += string(p2, j - 32);
} else{
b += string(p2, '*');
}
} else{
if(p1 != 3){
b += string(p2, j);
} else{
b += string(p2, '*');
}
}
}
}
if(p3 == 2) reverse(b.begin(), b.end());
flag = i;
zfc[++m] = b;
}
}
zfc[++m] = c.substr(flag + 1, c.size() - (flag + 1));
for(int i = 1;i <= m;i++){
cout << zfc[i];
}
return 0;
}
哪错了??