//火车进站问题(栈)
#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;
}
火车进站(栈)
最新推荐文章于 2022-07-25 09:19:46 发布