蒟蒻查询思路:将栈内数字一个一个取出来存在数组中,在取出来的同时比较最大值,求大佬给一个不会超时的查询思路
#include <queue>
#include <algorithm>
#include <stack>
using namespace std;
stack<int>x;
int main(){
int n;//指令数
cin>>n;
int num[n+1];
int order;//指令
long long q;//存进仓库的货物质量
int size;//栈内货物数量
for(int i=1;i<=n;i++){
cin>>order;
if(order==0){
cin>>q;
x.push(q);
}
if(order==1){
if(x.empty()!=1) x.pop();
else cout<<0<<endl;
}
if(order==2){
int max=0;
size=x.size();
for(int i=1;i<=size;i++){
num[i]=x.top();
if(num[i]>max){
max=num[i];
}
x.pop();
}
for(int i=size;i>=1;i--){
x.push(num[i]);
}
cout<<max<<endl;
}
}
}