You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
922 B

2 years ago
#include <bits/stdc++.h>
using namespace std;
int n, w;
int b[610]; // b[x] 表示有几个选手成绩为 x
// 找第 k 名选手的成绩
int kth(int k) {
if (!k) k = 1; // 不足1人取1人
// 倒序枚举桶
for (int i = 600; ~i; i--) { // 分数上限不是很大,可枚举 ; ~i 表示>=0;
k -= b[i]; // 扣除掉此分数的学生数量
if (k <= 0) return i; // 扣无可扣,无需再扣
}
return 0; // 没找到,随便返回一个数。当然这句话永远不会执行。
}
int main() {
cin >> n >> w; // 人数,获奖率
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
b[x]++; // 分数为x的同学多了一个
printf("%d ", kth(i * w / 100)); // 按计算公式计算注意边界情况获取当前第k名同学的成绩是多少
}
return 0;
}