//这题对输入输出格式有比较严格的要求,运用到二重循环来很好地解决了问题!
#include "iostream"
#include "stack"
#include "memory.h"
using namespace std;
int train[1010];
int main()
{
stack<int> s;
int num, i, A, B, tag;
while (cin >> num && num)//对第一个输入是否为0的判断!
{
memset(train, 0, sizeof(train));
while (cin >> train[1] && train[1])//对第二个输入是否为0的判断!
{
A = B = 1, tag = 1;
for (i = 2; i <= num; i++)
cin >> train[i];
while (B <= num)
{
if (A == train[B])
{
A++;
B++;
}
else if (!s.empty() && train[B] == s.top())
{
s.pop();
B++;
}
else if (A <= num)
{
s.push(A);
A++;
}
else
{
tag = 0;
break;
}
}
if (tag)
cout << "Yes" << endl;
else
cout << "No" << endl;
}
cout << endl;
}
}
zoj 1259 Rails
最新推荐文章于 2019-04-29 09:23:41 发布