50分求调,码了几天,帮帮可怜的蒟蒻吧QWQ
查看原帖
50分求调,码了几天,帮帮可怜的蒟蒻吧QWQ
908638
chair0114楼主2023/7/17 14:46
#include<bits/stdc++.h>
#define ll long long
#define ii int
using namespace std;
const ll MAXN=2e3+10;
ii p1,p2,p3,cr[MAXN],j;
string s,ss;
string pp(ii x,ii y,ii z,ii x1,ii x2){
	string s;
	ii xx=(int)x1;
	ii yy=(int)x2;
	for(ii i=xx+1;i<yy;++i){
		ii k=y;
		if(x==1){
			s+=tolower((char)i);
			while(--k)s+=tolower((char)i);
		}
		if(x==2){
			s+=toupper((char)i);
			while(--k)s+=toupper((char)i);
		}
	}
	if(z==2)reverse(s.begin(),s.end());
	return s;
}
string shuziii(ii y,ii z,char a,char b){
	string s;
	ii aa,bb;
	aa=(int)a;
	bb=(int)b;
	for(ii i=a+1;i<b;++i){
		ii k=y;
		s+=(char)i;
		while(--k)s+=(char)i;
	}
	if(z==2)reverse(s.begin(),s.end());
	return s;
}
int main(){
	cin>>p1>>p2>>p3;
	cin>>s;
	for(ii i=0;i<s.size();++i){
		if(s[i]=='-'){
			if((isdigit(s[i-1])&&isalpha(s[i+1]))||(isalpha(s[i-1])&&isdigit(s[i+1]))||(s[i-1]==s[i+1])){
					ss+='-';
					continue;
				}
			if(isalpha(s[i-1])&&isalpha(s[i+1])){
				ss+=pp(p1,p2,p3,s[i-1],s[i+1]);
			}
			if(isdigit(s[i-1])&&isdigit(s[i+1])){
				ss+=shuziii(p2,p3,s[i-1],s[i+1]);
			}
		}
		if(s[i]!='-')
		ss+=s[i];
	}
	cout<<ss;
	return 0;	
}
2023/7/17 14:46
加载中...