本文共 1422 字,大约阅读时间需要 4 分钟。
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 (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.Output
For each operation 3,output a line representing the answer.
Sample Input
6
1 2 1 3 3 1 3 1 4 3Sample Output
3
4题目大意:给你一个数,表示有几行,然后给你一个a和x,如果a等于1的话,就向里面增加一个数,如果a等于2的话 ,就删除集合中最小的一个数,如果等于a==3 的话,就输出最大的数;
解题思路:STL,集合;具体见代码:
#include#include #include using namespace std;set ::iterator it;set s;int main(){ long long n, a, x; scanf("%lld",&n); s.clear(); while(n--) { scanf("%lld",&a); if(a == 1) { scanf("%lld",&x); s.insert(x); } else if(a == 2) { if(!s.empty()) s.erase(s.begin()); } else if(a == 3) { if(s.empty()) puts("0"); else { it=s.end(); it--; printf("%lld\n",*it); } } } return 0;}
转载地址:http://vpwbm.baihongyu.com/