90求调(闭关)
查看原帖
90求调(闭关)
1435369
skirmisher_楼主2025/8/31 10:56
#include<bits/stdc++.h>
using namespace std;
int p,pp,ppp;
bool x;
string a,b;
int main() {
	cin>>p>>pp>>ppp>>a;
	for(int i=0; i<a.size(); i++) {
		if(a[i]=='-'&&a[i-1]>=a[i+1]) {
			x=0;
			b+='-';
			continue;
		}
		if(a[i]=='-'&&x) {
			x=0;
			continue;
		}
		if(a[i]>='a'&&a[i]<='z'&&a[i+1]=='-'&&a[i+2]>='a'&&a[i+2]<='z') {
			x=1;
			b+=a[i];
			if(p==1) {
				if(ppp==1) {
					for(char j=a[i]+1; j<a[i+2]; j++) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				} else {
					for(char j=a[i+2]-1; j>a[i]; j--) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				}
			} else if(p==2) {
				if(ppp==1) {
					for(char j=a[i]+1-32; j<a[i+2]-32; j++) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				} else {
					for(char j=a[i+2]-1-32; j>a[i]-32; j--) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				}
			} else {
				for(char j=a[i]+1; j<a[i+2]; j++) {
					for(int k=1; k<=pp; k++)b+='*';
				}
			}
		} else if(a[i]>='0'&&a[i]<='9'&&a[i+1]=='-'&&a[i+2]>='0'&&a[i+2]<='9') {
			x=1;
			b+=a[i];
			if(p==1) {
				if(ppp==1) {
					for(char j=a[i]+1; j<a[i+2]; j++) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				} else {
					for(char j=a[i+2]-1; j>a[i]; j--) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				}
			} else if(p==2) {
				if(ppp==1) {
					for(char j=a[i]+1-32; j<a[i+2]-32; j++) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				} else {
					for(char j=a[i+2]-1-32; j>a[i]-32; j--) {
						for(int k=1; k<=pp; k++)b+=j;
					}
				}
			} else {
				for(char j=a[i]+1; j<a[i+2]; j++) {
					for(int k=1; k<=pp; k++)b+='*';
				}
			}
		} else b+=a[i];
	}
	cout<<b;
}
2025/8/31 10:56
加载中...