90分求助!!!
查看原帖
90分求助!!!
1060971
viking007楼主2024/8/24 13:35

样例七交了七遍没过

#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
	int p1,p2,p3,dis;
	scanf("%lld %lld %lld",&p1,&p2,&p3);
	string s;
	vector<char> c;
	cin>>s;
	c.push_back(s[0]);
	for(int i=1;i<s.length();i++){
		if(s[i]=='-'){
			if(s[i-1]>=97&&s[i+1]<=57||s[i-1]<=57&&s[i+1]>=97||s[i-1]>=s[i+1]){
				c.push_back(s[i]);
				continue;	
			}
			dis=(int)s[i+1]-(int)s[i-1]-1;
			if(p3==1){
				if(p1!=3){
					for(int j=(int)s[i-1]+1;j<=(int)s[i-1]+dis;j++){
						for(int k=0;k<p2;k++) c.push_back(j-(p1==2)*32);
					}
				}
				if(p1==3) for(int j=0;j<p2*dis;j++) c.push_back('*');
			}
			if(p3==2){
				if(p1!=3){
					for(int j=(int)s[i-1]+dis;j>=(int)s[i-1]+1;j--){
						for(int k=0;k<p2;k++) c.push_back(j-(p1==2)*32);
					}
				}
				if(p1==3) for(int j=0;j<p2*dis;j++) c.push_back('*');
			}
			continue;
		}
		c.push_back(s[i]);
	}
	for(int i=0;i<c.size();i++) printf("%c",c[i]);
	return 0;
}
2024/8/24 13:35
加载中...