代码如下
#include<bits/stdc++.h>
using namespace std;
stack<int> s;
queue<int> q,ans;
int a[99999];
int main(){
int i,j,n,x;
while(cin>>n&&n!=0){
while(cin>>a[1]){
if(a[1]==0){
break;
}
q.push(1);
ans.push(a[1]);
for(i=2;i<=n;i++){
cin>>a[i];
q.push(i);
ans.push(a[i]);
}
for(i=1;i<=n;i++){
s.push(q.front());
q.pop();
while(s.top()==ans.front()){
if(!s.empty()){
s.pop();
ans.pop();
}
else if(s.empty()){
break;
}
}
}
}
if(q.empty()&&ans.empty()&&s.empty()){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
}
return 0;
}