30分求助
查看原帖
30分求助
1200059
xcgmy楼主2025/1/16 14:21
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3,i,j,h,n,n2;
string s,ans;
int main(){
	cin>>p1>>p2>>p3>>s;
	s+="  ";
	n=s.size();
	for(i=0;i<=n-3;i++){
		if(s[i+1]!='-') ans+=s[i];
		if(s[i+1]=='-'&&s[i]<s[i+2]){
			ans+=s[i];
			if(p3==1){
				for(j=int(s[i])+1;j<int(s[i+2]);j++)
				for(h=0;h<p2;h++){
					if(p1==1) ans+=char(j); 
					if(p1==2) ans+=char(j-32); 
					if(p1==3) ans+='*';
				}
				ans+=s[i+2];
				i+=2;
			}
			if(p3==2){
				for(j=int(s[i+2])-1;j>=int(s[i])+1;j--)
					for(h=0;h<p2;h++){
						if(p1==1) ans+=char(j); 
						if(p1==2) ans+=char(j-32); 
						if(p1==3) ans+='*';
					}
				ans+=s[i+2];
				i+=2;
			}
		}
		if(s[i+1]=='-'&&s[i]>=s[i+2]){
			ans=ans+s[i]+s[i+1]+s[i+2]; 
			i+=2;
		}
		//cout<<i<<endl;
	}
	n2=ans.size();
	if(p3==2){
		cout<<ans[0]; 
		for(i=n2-2;i>=1;i--)
			cout<<ans[i];
		cout<<ans[n2-1];
		return 0;
	}
	if(p3==1){
		for(i=0;i<n2;i++)
			cout<<ans[i];
	} 
	return 0;
} 
2025/1/16 14:21
加载中...