标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)
Total Submission(s): 9407 Accepted Submission(s): 3752
#include<stdio.h> #include<queue> #include<string.h> #include<algorithm> #include<iostream> #include<queue> #include<set> #include<vector> #define INF 0x3f3f3f3f using namespace std; struct Node{ int v; friend bool operator < (Node a, Node b){ return a.v > b.v; } }; multiset<Node>st; multiset<Node>::iterator iter; int main(){ int n, k; char s[2]; Node d; while(~scanf("%d%d", &n, &k)){ st.clear(); int ans = 0x3f3f3f3f; for(int i = 0; i < n; i++){ scanf("%s", s); if(s[0] == ‘I‘){ scanf("%d", &d.v); st.insert(d); iter = st.end(); iter--; if(st.size() > k) st.erase(iter); } else{ iter = st.end(); iter--; printf("%d\n", *iter); } } } return 0; }
还可以用vector;
代码:
#include<iostream> #include<cstring> #include<cstdio> #include<vector> #include<algorithm> using namespace std; vector<int>vec; vector<int>::iterator iter; int main(){ int n, k; char s[2]; while(~scanf("%d%d", &n, &k)){ vec.clear(); for(int i = 0; i < n; i++){ scanf("%s", s); int v; if(s[0] == ‘I‘){ scanf("%d", &v); iter = lower_bound(vec.begin(), vec.end(), v); vec.insert(iter, v); } else{ printf("%d\n", vec[vec.size() - k]); } } } return 0; }
标签:
原文地址:http://www.cnblogs.com/handsomecui/p/5523047.html