运用初等栈的知识就可以解了;
#include<iostream>
using namespace std;
int n,a[1005],i;
bool ok()
{
int mystack[1005],num=0,i,k=1;
for(i=1;i<=n;i++)
{
mystack[++num]=i;
while(num&&a[k]==mystack[num])
{
num--;
k++;
}
}
if(num) return false;
else return true;
}
int main()
{
int p=0;
while(cin>>n,n)
{
if(p++) cout<<endl;
while(cin>>a[1],a[1])
{
for(i=2;i<=n;i++) cin>>a[i];
if(ok()) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
return 0;
}