#include <cstdio> #include <queue> // #define DEBUG_M #ifdef DEBUG_M #define DEBUGF(...) printf(stderr, __VA_ARGS__) #define DEBUG(expr) expr #else #define DEBUGF(...) #define DEBUG(expr) #endif using namespace std; int main() { int n; int k; scanf(" %d %d", &n, &k); std::priority_queue<int> scores; for (int i = 0; i < n; i++) { int tmp; scanf(" %d", &tmp); scores.push(tmp); } int get = 0; int last = 0; while (get < k) { last = scores.top(); scores.pop(); get++; } while (scores.size() && last == scores.top()) { scores.pop(); get++; } printf("%d\n", get); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <cstdio> #include <queue> // #define DEBUG_M #ifdef DEBUG_M #define DEBUGF(...) printf(stderr, __VA_ARGS__) #define DEBUG(expr) expr #else #define DEBUGF(...) #define DEBUG(expr) #endif using namespace std; int main() { int n; int k; scanf(" %d %d", &n, &k); std::priority_queue<int> scores; for (int i = 0; i < n; i++) { int tmp; scanf(" %d", &tmp); scores.push(tmp); } int get = 0; int last = 0; while (get < k) { last = scores.top(); scores.pop(); get++; } while (scores.size() && last == scores.top()) { scores.pop(); get++; } printf("%d\n", get); } |