出栈序列判断(老六

#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了
posted @ 2022-12-09 17:12  Szang  阅读(16)  评论(0编辑  收藏  举报