杭电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;
}
相关文章推荐
- 杭电hdu 1022 Train Problem I 栈
- 杭电1022 Train Problem I
- 杭电ACM 1022 Train Problem I
- 杭电1022——Train Problem I(栈的应用)
- 杭电1022(栈的运用) 之 Train Problem I
- 【杭电】[1022]Train Problem I
- 杭电ACM OJ 1022 Train Problem I 回溯法求出栈遍历序列 很强大
- 【杭电oj】1022 - Train Problem I(栈)
- 【ACM】杭电1022:Train Problem I
- Train Problem I(杭电1022)(栈的应用)
- 杭电1022 Train Problem I
- 【ACM】杭电1022:Train Problem I
- Java 杭电ACM Train Problem I 1022
- 杭电1022-Train Problem I
- 【杭电-oj】-1022-Train Problem I (栈,好)
- hdu 1022 Train Problem I
- hdoj1022------------------Train Problem I---栈
- HDU1022--Train Problem I HDU(136)
- HDU 1022 Train Problem I 模拟栈题解
- hdu 1022 Train Problem I 栈