2015 多校联赛 ——HDU5349(水)
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)
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 (N≤106),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.
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<cstdio> #include<cstring> #include<algorithm> #include<vector> #include<cmath> #include<queue> typedef long long ll; using namespace std; int main() { int n; while(scanf("%d",&n)==1) { int x; ll q, tmax = -1000000100; int sum = 0; for(int i = 1; i <= n; i++) { scanf("%d",&x); if(sum==0) tmax = -1000000100; if(x == 1) { scanf("%I64d",&q); if(q >= tmax) tmax = q; sum++; } if(x == 2) { if(sum>0) sum--; } if(x == 3) { if(sum>0) printf("%I64d\n",tmax); else printf("0\n"); } } } return 0; }