http://acm.hdu.edu.cn/showproblem.php?pid=5349
/************************************************ * Author :Powatr * Created Time :2015-8-9 19:37:49 * File Name :F.cpp ************************************************/ #include <cstdio> #include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cmath> #include <string> #include <vector> #include <queue> #include <deque> #include <stack> #include <list> #include <map> #include <set> #include <bitset> #include <cstdlib> #include <ctime> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 typedef long long ll; const int MAXN = 1e5 + 10; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; multiset<int> S; multiset<int> :: iterator it; int main(){ int n; int m, k; while(~scanf("%d", &n)){ S.clear(); while(n--){ scanf("%d", &m); if(m == 1) { scanf("%d", &k); S.insert(k); } if(m == 2){ if(S.empty()) continue; S.erase(S.begin()); } else if(m == 3){ if(S.empty()){ printf("0 "); continue; } else{ it = S.end(); it--; printf("%d ", *it); } } } } return 0; }