POJ 1363 Rails

来源:互联网 发布:tv版软件 编辑:程序博客网 时间:2024/05/01 18:58

栈的简单应用

#include<cstdio>
#include<iostream>
#include<stack>
using namespace std;
int s[1005];
int num[1005];
stack<int> v;
void MyRails(int n)

 int i,j;
  
 v.push(num[1]);
 j=1,i=2;
 while(i<=n+1&&j<=n)
 {
  if(v.empty()||v.top()!=s[j])
  {
      v.push(num[i]);
   i++;
  }
  else
  {
   if(v.top()==s[j])
   {
      v.pop();
   j++;
   }
      else break;
  }
 }
 if(v.empty()) cout<<"Yes"<<endl;
 else cout<<"No"<<endl;
 while(!v.empty())
  v.pop();
}
int main()
{
    int i,j,n;
 s[0]=-1;
 for(j=0;j<=1000;j++)
    num[j]=j;
 while(cin>>n,n!=0)
 {
    while(cin>>s[1],s[1]!=0)
    {
       for(i=2;i<=n;i++)
     cin>>s[i];
    MyRails(n);
    }
    cout<<endl;
 }
  return 0;
}