解题思路:使用STL multiset从小到大保存最大的k个数,那么第一个数就是第k个最大数
注意事项:数字可以重复,所以不能用set
参考代码:
#include<iostream> #include<set> #include<functional> using namespace std; int main() { int n, k, a; char c; multiset<int, less<int>> set; cin >> n >> k; while (n--) { cin >> c; if (c == 'I') { cin >> a; set.insert(a); if (set.size() > k) set.erase(set.begin()); } else if (c == 'Q') { cout << *set.begin() << '\n'; } } return 0; }
0.0分
0 人评分
明明的随机数 (C++代码)浏览:818 |
母牛的故事 (C语言代码)浏览:1300 |
C语言程序设计教程(第三版)课后习题8.1 (Java代码)浏览:782 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:585 |
弟弟的作业 (C++代码)浏览:1304 |
C语言训练-求具有abcd=(ab+cd)2性质的四位数 (C语言代码)浏览:567 |
【数组的距离】 (C语言代码)浏览:741 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:1059 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:702 |