过了70
#include <iostream>
#include <algorithm>
using namespace std;
int p1,p2,p3;
string s;
bool check(char s1,char s2){
if(s1 >= '0' && s2 <= '9' && s1 < s2) return true;
if(s1 >= 'a' && s2 <= 'z' && s1 < s2) return true;
return false;
}
int main(){
cin >> p1 >> p2 >> p3;
cin >> s;
for(int i = 0;i < s.size();i++){
if(s[i]=='-' && i!=s.size()-1 &&check(s[i-1],s[i+1])){
string tmp;
//不需要展开
if(s[i-1]+1==s[i+1]) {
s.erase(i,1);
i--;
}
//需要展开
else {
//填充小写
if(p1==1){
for(int k = 1;k < s[i+1]-s[i-1];k++){
for(int j = 0;j < p2;j++) tmp+=s[i-1]+k;
}
if(p3==2) reverse(tmp.begin(),tmp.end());
s.replace(i,1,tmp);
}
//填充大写
else if(p1==2){
for(int k = 1;k < s[i+1]-s[i-1];k++){
for(int j = 0;j < p2;j++) tmp+=s[i-1]+k-65;
}
if(p3==2) reverse(tmp.begin(),tmp.end());
s.replace(i,1,tmp);
}
else{
//填充*
for(int k = 1;k < s[i+1]-s[i-1];k++){
for(int j = 0;j < p2;j++) tmp+='*';
}
s.replace(i,1,tmp);
}
}
}
}
cout << s;
}