#include<cstdio>
#include<stack>
using namespace std;
const int MAXN=1000+10;
int n,target[MAXN];
int main(){
while(scanf("%d",&n)==1){
stack<int> s;
int A=1,B=1;
for(int i=1;i<=n;i++)
scanf("%d",&target[i]);
int ok=1;
while(B<=n){
if(A==target[B]){
A++;
B++;
}
else if(!s.empty()&&s.top()==target[B]){
s.pop();
B++;
}
else if(A<=n){
s.push(A++);
}
else{
ok=0;
break;
}
}
printf("%s\n",ok? "Yes":"No");
}
}
算法竞赛入门经典P91铁轨
最新推荐文章于 2019-06-22 14:24:26 发布