Rails (棧)
阿新 • • 發佈:2017-07-22
鏈接 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 (棧)