我把你的代码改了一点点,快读改了,数组开大了,然后ac了
```
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
inline int read(int &x)
{
x=0; int f=1; char c=getchar();
while(c<'0'||c>'9') {if(c=='-')f=-1;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return x*f;
}
stack<int> z;
int N,max1[1000001],j=0,o[1000001],ji=0;
int main()
{
read(N);
for(int i=0;i<N;i++)
{
int a;
read(a);
switch (a)
{
case 0 :
{
int b;
read(b);
j++;
z.push(b);
max1[j]=max(max1[j-1],b);
break;
}
case 1 :
{
z.pop();
j--;
break;
}
case 2 :
{
o[++ji]=max1[j];
break;
}
}
}
for(int i=1;i<=ji;i++) cout<<o[i]<<endl;
return 0;
}
```
by Forever丶CIL @ 2018-11-22 22:48:14
谢谢啦qwq@[Forever丶CIL](/space/show?uid=21596)
by Cold_bamboon @ 2018-11-23 17:28:21