1. 程式人生 > >Rails (棧)

Rails (棧)

鏈接 color 一個 中轉站 clu while bre ron name

題目鏈接:https://vjudge.net/problem/UVA-514

題目大意:

有A,B,C三個火車停靠點,火車最初停在A站,給你一個序列,問你能不能通過中轉站C到達B站,火車從A站進入到C站以後不能再返回A站,從C站出到B站以後不能再進入C站。

分析:

把中轉站C站看作一個棧。

AC代碼:

#include<iostream>
#include<stack>
using namespace std;
int main()
{
int a[1050],t,flag,i,j;
while (cin>>t&&t)
{
flag=1;


stack <int>s;
while (cin>>a[0]&&a[0])
{
for (int i=1;i<t;i++)
cin>>a[i];
for (i=1,j=0;i<=t;i++)
{
s.push(i);
while (s.top()==a[j])
{
if (!s.empty())

s.pop();
j++;
if (s.empty())
break;
}
}
if (j==t)
cout << "Yes" << endl;
else
cout << "No" << endl;
}
cout << endl;
}

return 0;
}

Rails (棧)