这道题我们可用栈来做,如果有建议请私聊或评论,代码如下:
#include<bits/stdc++.h>//万能头文件
using namespace std;//好习惯
stack <int> st;//这是一个统计最大值的栈
int main()
{
int n,x,y;//三个函数
cin >> n;//输入有多少行
st.push(0);//开始先将0放进去,这样就不用考虑是否为0的事了
for(int i=1;i<=n;i++)
{
cin >> x;//输入第一个数
if(x==0)//如果那个数为0
{
cin >> y;//输入第二个数
if(y>st.top()) st.push(y);//如果这个数大于目前的最大值,将y赋给最大值
else st.push(st.top());//如果没有,就将原来的插入进去
}
if(x==1) st.pop();//如果x=1,把栈顶弹出
if(x==2) cout << st.top() << endl ;//如果x=2,那么输出
}
return 0;//华丽的结尾
}
希望有大佬指点指点,谢谢