记录编号 132519 评测结果 AAAAAAAAAA
题目名称 [NOIP 2007]字符串的展开 最终得分 100
用户昵称 Gravatar水中音 是否通过 通过
代码语言 C++ 运行时间 0.005 s
提交时间 2014-10-26 06:10:23 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
char s[110];
int i=0,p1,p2,p3,j,zj,m;
vector<char> A;
vector<char>::iterator B;
void work1()//1,1
{
	zj=s[i+1];
	for(char c=s[i-1]+1;c<zj;c++)
	for(j=1;j<=p2;j++)
	A.push_back(c);
}
void work2()
{
	if(s[i-1]>='a'&&s[i-1]<='z')
	{
		zj=s[i+1]-32;
		for(char c=s[i-1]-31;c<zj;c++)
		for(j=1;j<=p2;j++)
		A.push_back(c);
	}
	else
	{
		zj=s[i+1];
		for(char c=s[i-1]+1;c<zj;c++)
		for(j=1;j<=p2;j++)
		A.push_back(c);
	}
}
void work3()
{
	zj=s[i+1];
	for(char c=s[i-1]+1;c<zj;c++)
	for(j=1;j<=p2;j++)
	A.push_back('*');
}
void work4()
{
	zj=s[i-1];
	for(char c=s[i+1]-1;c>zj;c--)
	for(j=1;j<=p2;j++)
	A.push_back(c);
}
void work5()
{
	if(s[i-1]>='a'&&s[i-1]<='z')
	{
		zj=s[i-1]-32;
		for(char c=s[i+1]-33;c>zj;c--)
		for(j=1;j<=p2;j++)
		A.push_back(c);
	}
	else
	{
		zj=s[i-1];
		for(char c=s[i+1]-1;c>zj;c--)
		for(j=1;j<=p2;j++)
		A.push_back(c);
	}
}
void work6()
{
	zj=s[i+1];
	for(char c=s[i-1]+1;c<zj;c++)
	for(j=1;j<=p2;j++)
	A.push_back('*');
}
int main()
{
	freopen("expand.in","r",stdin);
	freopen("expand.out","w",stdout);
	scanf("%d%d%d",&p1,&p2,&p3);
	scanf("%s",s);
	m=0;i=0;
	while(s[m]!=' '&&s[m]!='\0'&&s[m]!='\n')m++;
	while(s[i]=='-')
	{
		A.push_back(s[i]);
		i++;
	}
	for(;i<m;i++)
	{
		if(s[i]!='-')A.push_back(s[i]);
		else
		{
			if(s[i+1]!=' ')
			{
				if((s[i-1]<='z'&&s[i+1]<='z'&&s[i-1]>='a'&&s[i+1]>='a')||(s[i-1]<='9'&&s[i+1]<='9'&&s[i-1]>='0'&&s[i+1]>='0'))
				{
					if(s[i+1]<=s[i-1])
					{
						A.push_back(s[i]);
						continue;
					}
					else
					{
						if(p3==1)
						{
							if(p1==1)work1();
							if(p1==2)work2();
							if(p1==3)work3();
						}
						else
						{
							if(p1==1)work4();
							if(p1==2)work5();
							if(p1==3)work6();
						}
					}
				}
				else A.push_back(s[i]);
			}
		}
	}
	for(B=A.begin();B!=A.end();B++)
	printf("%c",*B);
	return 0;
}