Run ID:3592
提交时间:2024-06-15 17:09:13
#include<iostream> using namespace std; string unfold(char begin,char end,int p1,int p2,int p3){ string str; str+=begin++; if(end-begin>0){ if(p1<=2){ if(begin>='a'&&begin<='z'&&end>='a'&&end<='z'){ int index=0; if(p1==2) index=32; if(p3==1) for(;begin<end;begin++){ for(int i=0;i<p2;i++) str+=begin-index; }else{ int temp=end-1; for(;temp>=begin;temp--){ for(int i=0;i<p2;i++) str+=temp-index; } } }else{ if(p3==1) for(;begin<end;begin++){ for(int i=0;i<p2;i++) str+=begin; }else{ int temp=end-1; for(;temp>=begin;temp--){ for(int i=0;i<p2;i++) str+=temp; } } } }else{ int frequency=(end-begin)*p2; for(int i=0;i<frequency;i++) str+='*'; } } str+=end; return str; } int main(){ string s; int p1,p2,p3; cin>>p1>>p2>>p3>>s; int lens=s.size(); for(int i=1;i<lens-1;i++){ if(s[i]=='-'){ if(s[i-1]<s[i+1]){ if(s[i-1]>='a'&&s[i-1]<='z'&&s[i+1]>='a'&&s[i+1]<='z'||s[i-1]>='1'&&s[i-1]<='9'&&s[i+1]>='1'&&s[i+1]<='9'){ s.replace(i-1,3,unfold(s[i-1],s[i+1],p1,p2,p3)); i+=s.size()-lens,lens=s.size(); } } } } cout<<s; return 0; }