记录编号 |
348612 |
评测结果 |
AAAWAWWAAA |
题目名称 |
单向双轨道 |
最终得分 |
70 |
用户昵称 |
Zwoi_只会打表抄代码的蒟蒻 |
是否通过 |
未通过 |
代码语言 |
C |
运行时间 |
0.016 s |
提交时间 |
2016-11-14 15:03:49 |
内存使用 |
0.30 MiB |
显示代码纯文本
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int l,i,h1,h2,h3,h4,t1,t2,t3;//h1 b qidian,h2 tb tiaodub,h3 tc tiaoduc
char a[30],b[30],tb[30],tc[30],std[30],y[10000][4];
int main()
{
freopen("track.in","r",stdin);
freopen("track.out","w",stdout);
scanf("%d",&l);
scanf("%s",a+1);//shu chu lu jing
for(i=0;i<=l-1;i++)
{
b[i+1]='a'+i;//qi dian
std[i+1]='A';
}
h1=l;
h2=h3=1;
t2=t3=h4=0;
for(i=l;i>0;i--)
{
if(std[a[i]-'a'+1]=='A')
{
while(b[h1]!=a[i])
{
tb[++t2]=b[h1--];
std[tb[t2]-'a'+1]='B';
h4++;
y[h4][1]=tb[t2];
y[h4][2]='A';
y[h4][3]='B';
}
h4++;
y[h4][1]=a[i];
y[h4][2]='A';
y[h4][3]='D';
h1--;
}
if(std[a[i]-'a'+1]=='B')
{
while(tb[t2]!=a[i])
{
tc[++t3]=tb[t2--];
std[tc[t3]-'a'+1]='C';
h4++;
y[h4][1]=tc[t3];
y[h4][2]='B';
y[h4][3]='C';
}
h4++;
y[h4][1]=a[i];
y[h4][2]='B';
y[h4][3]='D';
t2--;
}
if(std[a[i]-'a'+1]=='C')
{
if(tc[t3]!=a[i])
{
printf("NO");
exit(0);
}
else
{
h4++;
y[h4][1]=a[i];
y[h4][2]='C';
y[h4][3]='D';
}
t3--;
}
}
for(i=1;i<=h4;i++)
printf("%c %c %c\n",y[i][1],y[i][2],y[i][3]);
return 0;
}