40分,求解,给关注
查看原帖
40分,求解,给关注
1248813
_ByTT_楼主2024/5/20 08:52
#include <bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c,aa=0;cin>>a>>b>>c;
	string s;cin>>s;
	for(int i=0;i<s.length();i++){
		if(s[i+1]=='-'){
			if(s[i]<s[i+2]){
				if(a==1||(s[i]<='9'&&s[i]>='0')){
					if(c==1){
						char ans=s[i];
						cout<<s[i];ans++;
						if(aa==1) ans++;
						while(ans<s[i+2]){
							for(int i=1;i<=b;i++)cout<<ans;
							ans++;
						}
						cout<<s[i+2];i++;
						if(s[i+2]=='-'){
							if(s[i+1]>s[i+3]){
								i++;aa=1;
							}
						}else{
							i++;aa=0;
						}
					}else{
						char ans=s[i+2];
						cout<<s[i];ans--;
						if(aa==1) ans--;
						while(ans>s[i]){
							for(int i=1;i<=b;i++)cout<<ans;
							ans--;
						}
						cout<<s[i+2];i++;
						if(s[i+2]=='-'){
							if(s[i+1]>=s[i+3]){
								i++;aa=1;
							}
						}else{
							i++;aa=0;
						}
					}
				}else{
					if(c==1){
						char ans=s[i];
						cout<<s[i];ans++;
						if(aa==1) ans++;
						while(ans<s[i+2]){
							for(int i=1;i<=b;i++)cout<<char(ans-'a'+'A');
							ans++;
						}
						cout<<s[i+2];i++;
						if(s[i+2]=='-'){
							if(s[i+1]>=s[i+3]){
								i++;aa=1;
							}
						}else{
							i++;aa=0;
						}
					}else{
						char ans=s[i+2];
						cout<<s[i];ans--;
						if(aa==1) ans--;
						while(ans>s[i]){
							for(int i=1;i<=b;i++) cout<<char(ans-'a'+'A');
							ans--;
						}
						cout<<s[i+2];i++;
						if(s[i+2]=='-'){
							if(s[i+1]>=s[i+3]){
								i++;aa=1;
							}
						}else{
							i++;aa=0;
						}
					}
				}
			}else{
				cout<<s[i]<<s[i+1]<<s[i+2];i++;
				if(s[i+2]=='-'){
					if(s[i+1]>=s[i+3]){
						i++;aa=1;
					}
				}else{
					i++;aa=0;
				}
			}
		}else{
			cout<<s[i];
		}
	}
	return 0;
}
2024/5/20 08:52
加载中...