比赛 练习赛 评测结果 AAAAAAAAAA
题目名称 字符串的展开 最终得分 100
用户昵称 gsj.cpp 运行时间 0.006 s
代码语言 C++ 内存使用 13.66 MiB
提交时间 2019-05-22 14:09:53
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
char a[105];int p1,p2,p3; 
int main()
{
	freopen("expand.in","r",stdin);
	freopen("expand.out","w",stdout);
	cin>>p1>>p2>>p3;
	cin>>a;
	for(int i=0;i<strlen(a);i++)
	{
		if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))cout<<a[i];
		if(a[i]=='-'&&a[i+1]=='-'&&i==0)cout<<'-'<<'-',i++;
		if(a[i]=='-'&&i==0)cout<<'-';
		else if(a[i]=='-'&&a[i+1]=='-')cout<<'-'<<'-',i++;
		else if(a[i]=='-'&&a[i-1]>='0'&&a[i-1]<='9'&&a[i+1]>='a'&&a[i+1]<='z')cout<<'-';
		else if(a[i]=='-')
		{
			if(a[i-1]>=a[i+1]||(a[i-1]=='9'&&a[i+1]=='a'))cout<<'-';
			else if(a[i-1]<a[i+1])
			{
				 if(p1==1||(p1==2&&a[i-1]>='0'&&a[i+1]<='9'&&a[i-1]<='9'&&a[i+1]>='0'))
				 {
				 	if(p3==1)
				 	{
				 		if(a[i-1]>='0'&&a[i-1]<='9')
				 		for(int j=1;;j++)
				 		{
				 			if(a[i-1]+j<a[i+1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i-1]+j);
				 				}
				 			}
				 			if(a[i-1]+j>=a[i+1]||a[i-1]+j>='9')break;
				 		}
				 		if(a[i-1]>='a'&&a[i-1]<='z')
				 		for(int j=1;;j++)
				 		{
				 			if(a[i-1]+j<a[i+1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i-1]+j);
				 				}
				 			}
				 			if(a[i-1]+j>=a[i+1]||a[i-1]+j>='z')break;
				 		}
				 	}
				 	if(p3==2)
				 	{if(a[i+1]>='a'&&a[i+1]<='z')
				 		for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
				 		{
				 			if(a[i+1]-j>a[i-1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i+1]-j);
				 				}
				 			}
				 			if(a[i+1]-j<=a[i-1]||a[i+1]-j<='a')break;
				 		}
				 	 if(a[i+1]>='0'&&a[i+1]<='9')
				 	 {
				 	 	for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
				 		{
				 			if(a[i+1]-j>a[i-1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i+1]-j);
				 				}
				 			}
				 			if(a[i+1]-j<=a[i-1]||a[i+1]-j<='0')break;
				 		}
				 	 }
				 	}
				 }
				 if(p1==2&&a[i-1]>='a'&&a[i+1]<='z'&&a[i-1]<='z'&&a[i+1]>='a')
				 {
				 	if(p3==1)
				 	{
				 		for(int j=1;;j++)
				 		{
				 			if(a[i-1]+j<a[i+1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i-1]+j-32);
				 				}
				 			}
				 			if(a[i-1]+j>=a[i+1])break;
				 		}
				 	}
				 	if(p3==2)
				 	{
				 		for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
				 		{
				 			if(a[i+1]-j>a[i-1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i+1]-j-32);
				 				}
				 			}
				 			if(a[i+1]-j<=a[i-1])break;
				 		}
				 	}
				 }
				 if(p1==2&&a[i-1]>='A'&&a[i+1]<='Z'&&a[i-1]<='Z'&&a[i+1]>='A')
				 {
				 	if(p3==1)
				 	{
				 		for(int j=1;;j++)
				 		{
				 			if(a[i-1]+j<a[i+1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i-1]+j+32);
				 				}
				 			}
				 			if(a[i-1]+j>=a[i+1])break;
				 		}
				 	}
				 	if(p3==2)
				 	{
				 		for(int j=1;j<=a[i+1]-a[i-1]-1;j++)
				 		{
				 			if(a[i+1]-j>a[i-1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<char(a[i+1]-j+32);
				 				}
				 			}
				 			if(a[i+1]-j<=a[i-1])break;
				 		}
				 	}
				 }
				 if(p1==3)
				 {if(a[i-1]>='0'&&a[i-1]<='9')
				 	for(int j=1;;j++)
				 		{
				 			if(a[i-1]+j<a[i+1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<"*";
				 				}
				 			}
				 		if(a[i-1]+j>=a[i+1]||a[i-1]+j>='9')break;
				 		}
				 if(a[i-1]>='a'&&a[i-1]<='z')
				 		for(int j=1;;j++)
				 		{
				 			if(a[i-1]+j<a[i+1])
				 			{
				 				for(int k=1;k<=p2;k++)
				 				{
				 					cout<<"*";
				 				}
				 			}
				 			if(a[i-1]+j>=a[i+1]||a[i-1]+j>='z')break;
				 		}
				 }
			}
		}
	}
	return 0;
}