比赛 20120808 评测结果 AAAAAAAAAA
题目名称 报数 最终得分 100
用户昵称 Truth.Cirno 运行时间 0.003 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2012-08-08 11:27:03
显示代码纯文本
#include <cstdio>
#include <cstring>
using namespace std;

const char RUL[12]={'\0','\0','S','B','Q','W','S','B','Q','Y','S','B'};

struct strings
{
	int len;
	char str[600];
};

int main(void)
{
	freopen("readrule.in","r",stdin);
	freopen("readrule.out","w",stdout);
	int i,c,poi=0,poi2,wei[600]={0};
	strings str={0},ans={0};
	scanf("%s",&str.str);
	str.len=strlen(str.str);
	if (str.str[0]=='-')
	{
		ans.str[ans.len++]='F';
		poi=1;
	}
	else if (str.str[0]=='+')
		poi=1;
	while (str.str[poi]=='0')
		poi++;
	poi2=poi;
	while (str.str[poi2]>='0'&&str.str[poi2]<='9')
		poi2++;
	poi2--;
	if (poi2-poi+1<=0)
	{
		ans.str[ans.len++]='0';
	}
	else
	{
		for (i=poi2;i>=poi;i--)
			wei[i]=poi2-i+1;
		for (i=poi;i<=poi2;i+=c)
		{
			c=1;
			if (str.str[i]=='0')
			{
				while (str.str[i+c]=='0')
					c++;
				if (wei[i]>8&&wei[i+c]<=8)
				{
					ans.str[ans.len++]='Y';
				}
				else if (wei[i]<8&&wei[i]>4&&wei[i+c]<=4)
				{
					ans.str[ans.len++]='W';
				}
				if (wei[i+c]!=8&&wei[i+c]!=4&&wei[i+c]!=0)
					ans.str[ans.len++]='0';
			}
			else
			{
				ans.str[ans.len++]=str.str[i];
				if (RUL[wei[i]]!='\0')
					ans.str[ans.len++]=RUL[wei[i]];
			}
		}
	}
	poi=poi2+2;
	poi2=poi;
	while (str.str[poi2]>='0'&&str.str[poi2]<='9')
		poi2++;
	poi2--;
	while (str.str[poi2]=='0')
		poi2--;
	if (poi2-poi+1>0)
	{
		ans.str[ans.len++]='D';
		for (i=poi;i<=poi2;i++)
			ans.str[ans.len++]=str.str[i];
	}
	printf("%s\n",ans.str);
	return(0);
}