#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{ int n,a[1005],z[1005],t,f,r,i;
// freopen("in.txt","r",stdin);
cin>>n;
while (n>0)
{
cin>>a[1];
while (a[1]>0)
{
for (i=2;i<=n;i++) cin>>a[i];
f=1;r=0;
/*t=0;
while (1)
{
if (t==n&&a[f]!=z[r]) {cout<<"No"<<endl;break;}
if (t==n&&r==1&&f==n&&a[f]==z[r]) {cout<<"Yes"<<endl;break;}
if (t<n) {t++;r++;z[r]=t;}
if (a[f]==z[r]) {r--;f++;}
}*/
for (t=1;t<=n;t++) //n个数
{
r++; //入栈
z[r]=t;
while (a[f]==z[r]&&f<=n&&r>=1) {f++;r--;} //相同则出栈
/*cout<<"t="<<t<<" f="<<f<<" r="<<r<<endl;
for (int j=1;j<=r;j++) cout<<z[j];
cout<<endl;*/
}
if (f==n+1) cout<<"Yes"<<endl;else cout<<"No"<<endl;
cin>>a[1];
}
cout<<endl;
cin>>n;
}
return 0;
}
给定一组进栈顺序,问栈有多少种出去的顺序