HDU 5347 多校赛1007 MZL's simple problem

Problem Description
   
   
   
   
A simple problem Problem Description You have a multiple set,and now there are three kinds of operations: 1 x : add number x to set 2 : delete the minimum number (if the set is empty now,then ignore it) 3 : query the maximum number (if the set is empty now,the answer is 0)
 

Input
   
   
   
   
The first line contains a number N ( N106 ),representing the number of operations. Next N line ,each line contains one or two numbers,describe one operation. The number in this set is not greater than 109 .
 

Output
   
   
   
   
For each operation 3,output a line representing the answer.
 

Sample Input
   
   
   
   
6 1 2 1 3 3 1 3 1 4 3
 

Sample Output
   
   
   
   
3 4

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <queue>
#include <stack>
#include <algorithm>
#define LL long long

using namespace std;

int main()
{
    priority_queue<int, vector<int>, greater<int> >q;
    int n;
    scanf("%d",&n);
    int ch,x;
    int MAX;
    while(n--)
    {
        scanf("%d",&ch);
        if(ch == 1)
        {
            scanf("%d",&x);
            if(q.size() == 0)
            {
                MAX = x;
                q.push(x);
            }
            else
            {
                if(MAX < x)
                    MAX = x;
                q.push(x);
            }
        }
        else if(ch == 2)
        {
            if(q.size() == 0)
                continue;
            else
                q.pop();
        }
        else
        {
            if(q.size() == 0)
                printf("0\n");
            else
                printf("%d\n",MAX);
        }
    }
    return 0;
}



你可能感兴趣的:(HDU 5347 多校赛1007 MZL's simple problem)