忘了数字-'-'也会小于27,也是裂开了
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
    int p1,p2,p3,d=0;
    string s,ans;
    cin>>p1>>p2>>p3>>s;
    for(int m=0;m<s.size();m++)
    {
        string rp;
        if((m==0||m==s.size()-1)&&s[m]=='-'){ans+=s[m]; continue;};
        if(s[m]=='-'&&s[m+1]>s[m-1]&&(s[m+1]-s[m-1]<=27)&&s[m-1]>='0')
        {
            if(p1==1){
                for(int i=1;i<=s[m+1]-s[m-1]-1;i++){
                    for(int j=0;j<p2;j++){ 
                        rp+=s[m-1]+i;
                    }
                }
            }
            else  if(p1==3){
                for(int i=1;i<=s[m+1]-s[m-1]-1;i++){
                    for(int j=0;j<p2;j++) 
                        rp+='*';
                }
            }
            else if(p1==2){
                if(s[m-1]>='a'){
                    char a='A'+abs(s[m-1]-'a');
                    for(int i=1;i<=s[m+1]-s[m-1]-1;i++){
                        for(int j=0;j<p2;j++) 
                            rp+=(a+i);
                    }
                }
                else {
                    for(int i=1;i<=s[m+1]-s[m-1]-1;i++){
                        for(int j=0;j<p2;j++) 
                             rp+=s[m-1]+i;
                     }
                }
            }
            if(p3==2)reverse(rp.begin(), rp.end());
            ans+=rp;
        }
        else if (s[m] == '-' &&s[m + 1] == s[m - 1] + 1)continue;
        else if (m>=1&&s[m + 1]<=s[m-1] ) ans+=s[m];
        else ans+=s[m];
    }
     cout<<ans;
}