比赛 |
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);
}