//注意下控制格式 
#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;
}




 


作者:​​火星十一郎​

本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.