求大佬给更优解
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int p1,p2,p3;
cin>>p1>>p2>>p3;
cin>>s;
for(int i=0;i<s.size();++i){
if(s[i]=='-' && s[i-1]<s[i+1] &&( ( ( s[i-1]>='a' && s[i-1]<='z' ) && ( s[i+1]>='a' && s[i+1]<='z' ) ) || ( ( s[i-1]>='0' && s[i-1]<='9' ) && ( s[i+1]>='0' && s[i+1]<='9' ) ))){
s.erase(i,1);
string x="";
for(char j=s[i-1]+1;j<s[i];++j){
for(int k=0;k<p2;++k){
if(p1==1 || (p1==2 && j>='0' && j<='9') ) x+=j;
else if(p1==2 && j>='a' && j<='z') x+=j-32;
else if(p1==3) x+='*';
}
}
if(p3==2) reverse(x.begin(),x.end());
s.insert(i,x);
}
}
cout<<s;
return 0;
}