uva514(trail)(模拟栈)

 1 //#define LOCAL
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cstdlib>
 5 #include<stack>
 6 using namespace std;
 7 const int maxn=1005;
 8 stack<int>train;
 9 int ss[maxn];
10 int main()
11 {
12   #ifdef LOCAL
13      freopen("test.in","r",stdin);
14    #endif
15  int n,k;
16  while(scanf("%d",&n)&&n>0)
17  {
18      while(1)
19     {
20       scanf("%d",&ss[1]);
21       if(ss[1]==0)break;
22      for(int i=2;i<=n;i++)
23          scanf("%d",ss+i);
24      while(!train.empty())
25            train.pop();
26       k=1;
27     for(int i=1;i<=n;i++)
28     {
29          train.push(i);
30          while(!train.empty()&&train.top()==ss[k])
31       {
32           k++;
33           train.pop();
34       }
35     }
36     if(train.empty())printf("Yes\n");
37     else printf("No\n");
38     }
39  }
40  return 0;
41 }
View Code

题意: 一辆火车一次车厢依次进栈(1,2,3,4,5...,n),问有没有可能有安给出的方式出栈。

 

posted @ 2014-10-13 06:32  龚细军  阅读(769)  评论(0编辑  收藏  举报