标签:acm算法
6 1 2 1 3 3 1 3 1 4 3
3 4
开个map就好了。
#include <iostream> #include <algorithm> #include <stdio.h> #include <string.h> #include <math.h> #include <map> #define M 100010 using namespace std; map<__int64, __int64>mp; std::map<__int64, __int64>::iterator it; int main() { __int64 n; while (scanf("%I64d", &n) != EOF) { __int64 op, a; mp.clear(); for (int i = 0; i < n; i++) { scanf("%I64d", &op); if (op == 1) { scanf("%I64d", &a); mp[a]++; } else if (op == 2) { if (mp.size() == 0) continue; it = mp.begin(); int t = it->first; mp[t]--; if (mp[t] == 0) mp.erase(it); } else { if (mp.size() == 0) printf("0\n"); else { it = mp.end(); it--; printf("%I64d\n", it->first); } } } } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:acm算法
原文地址:http://blog.csdn.net/sky_miange/article/details/47281733