#include<bits/stdc++.h> using namespace std; string ans; int main() { ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); int p1,p2,p3; cin>>p1>>p2>>p3; string s; cin>>s; for(int i = 0;i < s.size();i++) { if(s[i]!='-') ans+= s[i]; else { char x = s[i-1],y=s[i+1]; if(p3==1) { if(y>x) { if(y==x+1) continue; else { int t = y - x -1; if( p1==1) { for(char i = x+1;i < y ;i++ ) { for(int j = 1;j <= p2;j++ ) { ans+=i; } } } if(p1==2 && x>='a' &&x<='z') { for(char i = x+1;i < y;i++) { for(int j = 1;j <= p2;j ++ ) { ans += i; } } } if(p1==2 && x>='0' && x<='9') { for(char i = x+1;i < y;i++ ) { for(int j = 1;j <= p2;j ++ ) { ans += i; } } } if(p1==3) { for(int i = 1;i <= p2*t; i++ ) ans += '*'; } } } else ans+=s[i]; } else { if(y>x) { if(y==x+1) continue; else { int t = y - x -1; if( p1==1) { for(char i = x+1;i < y ;i++ ) { for(int j = 1;j <= p2;j++ ) { ans+=i; } } } if(p1==2 && x>='a' &&x<='z') { for(char i = y-33;i >= x-31;i--) { for(int j = 1;j <= p2;j ++ ) { ans += i; } } } if(p1==2 && x>='0' && x<='9') { for(char i = y-1;i > x;i--) { for(int j = 1;j <= p2;j ++ ) { ans += i; } } } if(p1==3) { for(int i = 1;i <= p2*t; i++ ) ans += '*'; } } } else ans += s[i]; } } } cout<<ans<<endl; return 0; }
我改了几次,3个样例也都过了,感觉我这个代码没问题,但是牛客上只过了40%的数据,有无佬帮忙看一下问题在哪?感谢!
全部评论
(0) 回帖