//注意下控制格式 #include <iostream> #include <stack> #include <queue> using namespace std; bool is_match(queue <int > q,int num) { int i,j,k; stack <int > s; for(i=1;i<=num;i++) { s.push(i); if(i==q.front()) { while(!s.empty()&&q.front()==s.top()) { q.pop(); s.pop(); } } } if(s.empty()) return true; return false; } int main() { int i,j,k,T; while(cin>>T,T) { while(1) { queue <int > s; int num,temp=1;//temp必须初始化为非零值,否则下一次的temp直接为0 for(i=1;i<=T;i++) { cin>>num; if(num==0) { temp =num; break; } s.push(num); } if(temp==0) { cout<<endl; break; } bool flag = is_match(s,num); if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; } } return 0; }