您的位置:首页 > 大数据 > 人工智能

杭电1022 Train Problem I

2015-04-06 15:46 281 查看

Train Problem I

题目信息:

Ignatius火车站的火车是全世界最快的,所有大家都想乘坐它回家啊,但是只要一条铁路,火车都要停在这里,所有的火车从一侧进站,从另一侧出站,A首先进站,之后B进站,那么在B出站之前A是出不去的,那么问题来了,最多可能有9辆火车,所有的火车以OI的顺序进站,麻烦你判断一下它能否以O2的顺序出站类

输入:

测试数据有多组,每组以一个数字n开始,表示n辆火车,之后两个字符串即火车进站和出站的顺序

输出:

若不能以O2的顺序出站则输出No.否则输出Yes.之后输出进站出站的顺序,即输出in表示进站,输出out表示出站,每组测试数据的输出都以FINISH结尾

#include<stdio.h>

#include<string.h>

int main()

{

int n,i,j,k,l,p[100];//在哪定义都一样,

char m[100],s1[100],s2[100];

while(scanf("%d",&n)!=EOF)

{

scanf("%s%s",s1,s2);

memset(p,0,sizeof(p));

//int i,j,k,l;

k=i=l=-1;j=0;

p[++k]=1;

m[++i]=s1[++l];

while(i<n&&j<n)

{

while(i>=0&&m[i]==s2[j])//出栈

{

p[++k]=0;

--i;

++j;

}

p[++k]=1;//进栈

m[++i]=s1[++l];

}

if(l==n&&j==n)

{

printf("Yes.\n");

for(i=0;i<k;++i)

{

if(p[i]==0)printf("out\n");

else if(p[i]==1)printf("in\n");

}

printf("FINISH\n");

}

else printf("No.\nFINISH\n");

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: