现在的位置: 首页 > 综合 > 正文

火车进站(栈)

2014年01月21日 ⁄ 综合 ⁄ 共 340字 ⁄ 字号 评论关闭
//火车进站问题(栈)
#include<cstdio>
#include<stack>
using namespace std;
int a[1001],n;
int main(){
	while(scanf("%d",&n)==1){
		stack<int> s;
		int A=1,B=1;
		for(int i=1;i<=n;i++)
			scanf("%d",&a[i]);
		int ok=1;
		while(B<=n){
			if(A==a[B]){A++;B++;}
			else if(!s.empty()&&s.top()==a[B]){s.pop();B++;}
			else if(A<=n){s.push(A++);}
			else{ok=0;break;}
		}
		printf("%s\n",ok?"Yes":"No");
	}
	return 0;
}

抱歉!评论已关闭.