stack的应用
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
int goal[];
int d[];
stack<int>s;
int main()
{
freopen("input.txt","r",stdin);
int n;
for(int i = ; i <= ; i++)
d[i] = i;
while(cin>>n && n)
{
while(cin>>goal[] && goal[])
{
while(!s.empty())
s.pop();
for(int i = ; i <= n; i++)
cin>>goal[i];
int i = ;
int pos = ;
s.push(d[]);
while(pos <= n && i <= n+)
{
if(s.empty() || s.top() != goal[pos])
{
s.push(d[i]);
i++;
}
else if(s.top() == goal[pos])
{
s.pop();
pos++;
}
else break;
}
if(s.empty())
cout<<"Yes"<<endl;
else cout<<"No"<<endl; }
cout<<endl;
}
return ;
}