90分求助,测试点9始终过不了,大佬们帮我看看!
查看原帖
90分求助,测试点9始终过不了,大佬们帮我看看!
551894
lemon2021楼主2023/1/1 21:12

90分求助,测试点9始终过不了,大佬们帮我看看!

测试点9输入:
3 8 2
0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90
#include<iostream>
#include<cstring>
using namespace std;
/*
1 2 1
abcs-w1234-9s-4zz
*/
string s;
bool flag=false;
int main()
{
	int p1,p2,p3;
	cin>>p1>>p2>>p3;
	cin>>s;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]!='-')
		{
			flag=true;
		}
		if(s[i]=='-'&&flag)
		{
			if(s[i-1]-48<10&&s[i+1]-48>10)
			{
				cout<<'-';
				continue;
			}
			if(s[i-1]<s[i+1])
			{
				if(p3==1)
				{
					if(p1==1)
			  	{
			  		for(int j=s[i-1]+1;j<s[i+1];j++)
			  		{
			  			for(int k=1;k<=p2;k++)
					    {
					  	  if(s[i-1]-48>10)
					  	  {
					  		  if(j<91)
					  		  {
					  		  	cout<<char(j+32);
									}
									else
									{
										cout<<char(j);
									}
							  }
					  	  else
					  	  {
					  	  	cout<<j-48;
							  }
						  }
						}
				  }
				  if(p1==2)
				  {
					  for(int j=s[i-1]+1;j<s[i+1];j++)
			  		{
			  			for(int k=1;k<=p2;k++)
					    {
					  	  if(s[i-1]-48>9)
					  	  {
					  		  if(j>91)
					  		  {
					  		  	cout<<char(j-32);
									}
									else
									{
										cout<<char(j);
									}
							  }
					  	  else
					  	  {
					  	  	cout<<j-48;
							  }
						  }
						}
				  }
			  	if(p1==3)
				  {
					  for(int j=s[i-1]+1;j<s[i+1];j++)
			  		{
			  			for(int k=1;k<=p2;k++)
					    {
					  	  cout<<'*';
						  }
						}
				  }
				}
				if(p3==2)
				{
					if(p1==1)
				  {
				   	for(int j=s[j-1]-1;j>s[i-1];j--)
			  		{
			  			for(int k=1;k<=p2;k++)
					    {
					  	  if(s[i-1]-48>9)
					  	  {
					  		  if(j<91)
					  		  {
					  		  	cout<<char(j+32);
									}
									else
									{
										cout<<char(j);
									}
							  }
					  	  else
					  	  {
					  	  	cout<<j-48;
							  }
						  }
						}
				  }
				  if(p1==2)
				  {
				   	for(int j=s[i+1]-1;j>s[i-1];j--)
			  		{
			  			for(int k=1;k<=p2;k++)
					    {
					  	  if(s[i-1]-48>10)
					  	  {
					  		  if(j>91)
					  		  {
					  		  	cout<<char(j-32);
									}
									else
									{
										cout<<char(j);
									}
							  }
					  	  else
					  	  {
					  	  	cout<<j-48;
							  }
						  }
						}
				  }
				  if(p1==3)
				  {
				  	for(int j=s[i-1]+1;j<s[j+1];j++)
			  		{
			  			for(int i=1;i<=p2;i++)
					    {
					  	  cout<<'*';
						  }
						}
				  }
				}
			}
			else
			{
				cout<<'-';
			}
		}
		else
		{
			cout<<s[i];
		}
	}
	return 0;
}
2023/1/1 21:12
加载中...