洛谷p1098求解,样例能过

#include <bits/stdc++.h>
using namespace std;
char s[105][205];
int main(){
int n=0,p1,p2,p3;
cin>>p1>>p2>>p3;
while(~scanf("%c",&s[n++][1])){}
for(int i=0;i<n;++i){
s[i][0]='0';
if(s[i][1]!='-')continue;
char s1=s[i-1][1],s2=s[i+1][1];
int a=s1,b=s2;
if(b-a<=0)continue;
if(b-a==1){
s[i][1]='#';
continue;
}
s[i][1]='!';
int x=1;
for(int j=a+1;j<b;++j){
int y=p2;
if(p1==1){
while(y--){
s[i][++x]=j;
}
if(p3==2)
reverse(s[i]+2,s[i]+strlen(s[i]));
}
else if(p1==2){
while(y--){
s[i][++x]=j-32;
}
if(p3==2)
reverse(s[i]+2,s[i]+strlen(s[i]));
}
else{
while(y--){
s[i][++x]='*';
}
}
}
}
for(int i=2;i<n-1;++i){
//cout<<i<<s[i][1]<<endl;
//开学问疑问!!!,为什么i=0开始到i<n会有奇怪的东西;
if(s[i][1]!='#'){
if(s[i][1]!='!')cout<<s[i][1];

int l=strlen(s[i]);

    for(int j=2;j<l;++j){
        cout<<s[i][j];
    }

}

}

return 0;

}