90分,#7WA
查看原帖
90分,#7WA
1051333
UnSis楼主2023/10/14 10:00
#include<iostream>
using namespace std;
char in[110], out[10000];
int j = 1,i;
void p(int p1,int p2,int p3)
{
	switch (p1)
	{
	case 1:
		huilai:
		for (int k = 1; k < in[i + 1] - in[i - 1]; ++k)
		{
			if (p3==1)
			{
				for (int t = 1; t <= p2; ++t)
				{
					out[j] = in[i - 1] + k;
					++j;
				}
			}
			else if (p3 == 2)
			{
				for (int t = 1; t <= p2; ++t)
				{
					out[j] = in[i + 1] - k;
					++j;
				}
			}
		}
		break;
	case 2:
		if (in[i - 1] - '9' > 0)
		{
			char temp1 = in[i - 1] - 32;
			char temp2 = in[i + 1] - 32;
			for (int k = 1; k < in[i + 1] - in[i - 1]; ++k)
			{
				if (p3==1)
				{
					for (int t = 1; t <= p2; ++t)
					{
						out[j] = temp1 + k;
						++j;
					}
				}
				else if (p3 == 2)
				{
					for (int t = 1; t <= p2; ++t)
					{
						out[j] = temp2 - k;
						++j;
					}
				}
			}
		}
		else
			goto huilai;
		break;
	case 3:
		for (int k = 1; k < in[i + 1] - in[i - 1]; ++k)
		{
			for (int t = 1; t <= p2; ++t)
			{
				out[j] = '*';
				++j;
			}
		}
	default:
		break;
	}
	return;
}
int main()
{
	int p1, p2, p3;
	cin >> p1 >> p2 >> p3;
	scanf_s("%s", &in, sizeof(in));
	int len = strlen(in);
	out[0] = in[0];
	for (i = 1; i < len; ++i)
	{
		if (in[i] == '-')
		{
			if ((in[i - 1] <= '9' && in[i + 1] > '9')||(in[i-1]>'A'&&in[i-1]<'Z')&&(in[i+1]>'a'||p1==1))
			{
				out[j] = in[i];
				++j;
				continue;
			}
			if (in[i - 1] < in[i + 1])
			{
				p(p1, p2, p3);
				continue;
			}

		}
		out[j] = in[i];
		++j;
	}
	cout << out;
	return 0;
}

THX XD

2023/10/14 10:00
加载中...