49分 玄关
  • 板块P1165 日志分析
  • 楼主chty
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/13 15:02
  • 上次更新2024/8/13 16:44:24
查看原帖
49分 玄关
1162593
chty楼主2024/8/13 15:02
#include<bits/stdc++.h>
using namespace std;
int  a[5000005],ans=0;
int main()
{
	int n,m;
	cin>>n;
	stack<int> stk;
	while(n--){
		int z;
		cin>>z;
		if(z==0){
			cin>>m;
			stk.push(m);
			a[m]++;
			ans=max(ans,stk.top());
		}
		else if(z==1){
			a[stk.top()]--;
			if(ans==stk.top()){
				ans=0;
				for(int i=stk.top();i>0;i--){
					if(a[i]!=0){
						ans=i;
						break;
					}
				}
			}
			stk.pop();
		}else{
			cout<<ans<<endl;
		}
	}
	return 0;
}

测试点信息

2024/8/13 15:02
加载中...