HDU-1022-火车进出站问题

简介: HDU-1022-火车进出站问题


<pre name="code" class="plain">


Problem Description

As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of student want to get back to school by train(because the trains in the Ignatius Train Station is the fastest all over the world ^v^). But here comes a problem, there is only one railway where all the trains stop. So all the trains come in from one side and get out from the other side. For this problem, if train A gets into the railway first, and then train B gets into the railway before train A leaves, train A can't leave until train B leaves. The pictures below figure out the problem. Now the problem for you is, there are at most 9 trains in the station, all the trains has an ID(numbered from 1 to n), the trains get into the railway in an order O1, your task is to determine whether the trains can get out in an order O2.

 


Input

The input contains several test cases. Each test case consists of an integer, the number of trains, and two strings, the order of the trains come in:O1, and the order of the trains leave:O2. The input is terminated by the end of file. More details in the Sample Input.

 


Output

The output contains a string "No." if you can't exchange O2 to O1, or you should output a line contains "Yes.", and then output your way in exchanging the order(you should output "in" for a train getting into the railway, and "out" for a train getting out of the railway). Print a line contains "FINISH" after each test case. More details in the Sample Output.

 


Sample Input

      3 123 321 3 123 312      

 


Sample Output

      Yes. in in in out out out FINISH No. FINISH      



 


Sample Output

      Yes. in in in out out out FINISH No. FINISH      



Sample Output

      Yes. in in in out out out FINISH No. FINISH      

      题目意思是:      

      有一个车站   3 123  3是有三辆火车进站   123 分别是1 2 3号车   321是车辆开出顺序也就是列车必须是3号车出站后2号车才能出站之后是 1 号,当第 1 号辆进来的时候因为第一辆出战必须是3号车所以此时1号不能走,驶入2号,2号也不能走,驶入3号吗,3号可以走了,接着2号走,然后是1号走。      

      4 1234 2134  此时开出的顺序就不一样了。1号进来不能走,2号进来正好出车顺序是2134 所以 此时2号可以走了,2号走完正好1号走,1 号走完,3号进来,3号接着就出去了,最后是4号进4号出      

      这是在进站的时候就有出站情况的数据      

      /* 4 1234 2134      

Yes.
int
int
out
out
int
out
int
out
FINISH */


#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
  int n;
  char c[15],g[15],zhan[15];
  int cg[20];
  while(cin>>n>>c>>g)
  {
    memset(cg,0,sizeof(cg));
    int i=-1,j=0,k=-1,x=-1;
    zhan[++k]=c[++i];// 先把第一个进来的车存入栈
    cg[++x]=0;// 进栈用 0 标记(便于一会输出出栈进栈顺序)
    while(c[i]!='\0')
    {
      while(k>=0&&zhan[k]==g[j])//   比如   进栈 123    出栈 321   可以在纸上演示一遍就明白这个循环了
      {
               cg[++x]=1;
               --k;
         ++j;
       }
                 cg[++x]=0;
           zhan[++k]=c[++i];
    }
    if(i==n&&j==n)
    {
      printf("Yes.\n");
      for(i=0;i<x;i++)
         puts(cg[i]?"out":"in");
    }
    else  puts("No.");
      puts("FINISH");
  }
  return 0;
}
</pre></div>


目录
相关文章
|
C++
201609-2 火车购票
201609-2 火车购票
95 0
201609-2 火车购票
|
算法
[leetcode] 787 K 站中转内最便宜的航班
题目大意: 给定一个有向图,从u → v 有一条长度为w 的边 问从s 到t 的路径中,最多经过k 次中转的最短路径是多少?
176 0
[leetcode] 787 K 站中转内最便宜的航班
经典骗局 - 女主播的时间管理秘密,男子打赏主播女友21万后被拉黑
经典骗局 - 女主播的时间管理秘密,男子打赏主播女友21万后被拉黑
183 0
经典骗局 - 女主播的时间管理秘密,男子打赏主播女友21万后被拉黑
|
数据采集 分布式计算 前端开发
我们扒下了全网所有“年夜饭”菜谱,找到了最有年味的一道菜
我们扒下了全网所有“年夜饭”菜谱,找到了最有年味的一道菜
178 0
我们扒下了全网所有“年夜饭”菜谱,找到了最有年味的一道菜
|
云安全 安全 索引
周杰伦等名人网站频被挂马 粉丝上网需警惕
据瑞星“云安全”系统监测,4月28日,“周杰伦中文网”、“中国保险网”、“玉林百科”等网站被黑客挂马,用户浏览这些网站后,会感染木马病毒:Trojan.DL.Win32.Undef.dyf(安德夫木马下载器),导致用户个人信息被盗。
1003 0