NYOJ 150 Train ProblemI【スタック】
1110 ワード
この問題はちょっと長いですね.大氷と最初にこの問題を始めたのは覚えていますが、最後のacです...⊙﹏⊙..この問題の構想はoj上で最大数のその問題を探す構想とスタックの思想である.
#include<stdio.h>
char yi[100];
int k=0;
void get(int n)
{
if(n==1)
yi[k++]='1';//
else if(n==0)
{
yi[k++]='1';
yi[k++]='0';//
}
else
yi[k++]='0';
}
int main()
{
int a,b,c,n,m;
while(scanf("%d",&n)!=EOF)
{
char ok1[15],ok2[15];
int top=-1;
int ac[15]={0};// 。。
k=0;c=0;
scanf("%s%s",ok1,ok2);
for(a=0;a<n;a++)
{
b=a;
if(ok1[a]!=ok2[c])
{
get(1);
top++;
}
else
{
get(0);
ac[a]=1;
c++;
while(b>0)
{
b--;
if(ac[b]==1)
continue;
if(ok1[b]==ok2[c])
{
get(2);
ac[b]=1;
c++;
top--;
}
else
break;
}
}
}
if(top!=-1)
printf("No.
");
else
{
printf("Yes.
");
for(a=0;a<k;a++)
if(yi[a]=='1')
printf("in
");
else
printf("out
");
}
printf("FINISH
");
}
}