出栈序列判断(老六
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int stk[N],top=1;
int a[N];
int main()
{
stk[0]=0,stk[1]=1;
printf("push 1\n");
int m;scanf("%d",&m);
for(int i=0;i<m;i++) scanf("%d",&a[i]);
int num=2;
for(int i=0;i<m;i++)
{
int idx=stk[top];
if(idx==a[i])
{
printf("pop\n");
top--;
}
else
{
while(idx!=a[i])
{
stk[++top]=num;
printf("push %d\n",stk[top]);
idx=stk[top];
num++;
}
printf("pop\n");
top--;
}
}
return 0;
}
//老6 n2复杂度 用cin直接给我干tle了