//火车进站问题(栈) #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; }