计数排序思想
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int main()
{
int s[650] = {0}, n , w , tmp;
cin >> n >> w;
for ( int i = 1 ; i <= n ; i++ )
{
//cout << "i = " << i << " ";
cin >> tmp; //输入分数
s[tmp]++; //记录获得此分数的人数
int p = max(1 , i * w / 100); //计算获奖人数
int sum = 0; //人数累加器
for ( int j = 600 ; j >= 0 ; j-- ) //一个个试分数
{
//cout << " j = " << j << " ";
sum += s[j]; //累加人数
if ( sum >= p ) //判断人数是否已超过将获奖人数
{
cout << j << " "; //输出分数线
break; //提前退出循环
}
}
}
return 0;
}