洛谷P7072
数据量小的时候,桶排序非常好用
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int t[610], n, w;
//t是成绩桶,计算目前得到该分数的有多少人
int main() {
cin >> n >> w;
int tmp;//临时存储选手成绩
for(int i = 0; i < n; i++) {
cin >> tmp;
t[tmp]++;
//由于直播计算获奖人数的特殊性
//每出一位选手成绩,获奖数据都要重新算
int sum = 0;//用来记录获奖人数
for(int j = 600; j >= 0; j--) {//从最高分往下数获奖人数
sum += t[j];
if(sum >= max(1, (i + 1) * w / 100)) {
cout << j << ' ';//获奖所需最低分数
break;
}
}
}
return 0;
}

浙公网安备 33010602011771号