分享

浙大 1259 火车

 竹林馆0 2011-08-06
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
const int MAXN = 1000 +10;
int n; 
int target[MAXN];

int main()
{
    while(scanf("%d",&n)&&n)
    {   
    while(scanf("%d",&target[1])&&target[1])
    {
      int stack[MAXN],top = 0;
      int A= 1,B=1;
      for(int i=2; i<=n; i++)
      scanf("%d",&target[i]);
      int ok = 1;
      while(B<=n)
      {
        if(A == target[B]){ A++;B++; }
         else if(top&&stack[top]==target[B]){top--; B++; }
         else if(A <= n)stack[++top]=A++;
         else {ok = 0; break;}
      }
      printf("%s\n",ok?"Yes":"No");
    }
   if(n)printf("\n");      
     }
     system("pause");
return 0;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约