1640: 最小值维护

#include<bits/stdc++.h>
using namespace std;
inline long long read(){
    long long num=0;int z=1;char c=getchar();
    if(c=='-') z=-1;
    while((c<'0'||c>'9')&&c!='-') c=getchar();
    if(c=='-') z=-1,c=getchar();
    while(c>='0'&&c<='9') num=(num<<1)+(num<<3)+(c^48),c=getchar();
    return z*num;
}
char s[106]; 
int main(){
    priority_queue<int>a;
    int n;
    n=read();
    
    int l;
    for(int i=1;i<=n;i++)
    {
       scanf("%s",s+1);
       if(s[1]=='A'){
            l=read();
            a.push(-l);
       }
       else{
        if(a.empty())
        {
            printf("ERROR
");
        }
           else{
            printf("%d
",-a.top());
           a.pop();
           }
       }
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/ruanmowen/p/13467617.html