题意是有一个升序1,2,3,4,5,6,7,.....的火车,进站之后能不能以输入的顺序输出!!!
就这题我看了半天才看明白题意!!愁死我了
#include<iostream>
using namespace std;
#include<stack>
int a[1005];
int num[1005];
stack <int> s;
int main()
{
int n;
for(int i=1;i<=1000;i++)
num[i]=i;
while(cin>>n,n)
{
while(cin>>a[1],a[1])
{
int k=1,t=2;
for(int i=2;i<=n;i++)
cin>>a[i];
s.push(num[1]);
while(k<=n&&t<=n+1)//当栈被塞到最后时,t=n+1
{
if(!s.empty()&&s.top()==a[k])
{
s.pop();
k++;
}
else
{
s.push(num[t]);
t++;
}
}
if(k==n+1)
printf("Yes\n");
else
printf("No\n");
while(!s.empty())//别忘了清空栈
s.pop();
}
printf("\n");
}
return 0;
}