欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

例题6-2 UVA 514 Rails

程序员文章站 2022-05-28 15:18:58
...

比较简单,栈入栈时要判断栈满没有,出栈时要判断栈空没有,这里没有限制栈的容量,不需要判断栈满。

#include <bits/stdc++.h>
using namespace std;
int n, a[1010];
int main()
{
	while(scanf("%d", &n) != EOF && n){
		while(scanf("%d", &a[0]) != EOF){
			if(a[0] == 0){
				printf("\n");
				break;
			}
			int t = 0;
			stack<int> s;
			for(int i = 1; i < n; i++){
				scanf("%d", &a[i]);
			}
			for(int i = 1; i <= n; i++){
				s.push(i);
				while(s.size() && s.top() == a[t]){
					s.pop();
					t++;
				}
			}
			if(t == n) printf("Yes\n");
			else printf("No\n");
		}
	}
	return 0;
}