2232: 获奖直播

Memory Limit:256 MB Time Limit:1.000 S
Judge Style:Normal Judger Creator:
Submit:96 Solved:15

Description

【题目描述】 
 NOI2130 即将举行。为了增加观赏性,CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为w%,即当前排名前w%的选手的最低成绩就是即时的分数线。
更具体地,若当前已评出了 p 个选手的成绩,则当前计划获奖人数为max(1,⌊p×w%⌋ ,其中w是获奖百分比,⌊x⌋ 表示对x向下取整, max(x,y)表示x和y中的较大数。如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多。 
作为评测组的技术人员,请你帮CCF 写一个直播程序。 
【输入格式】 
 输入文件名为 live.in。
第 1 行两个正整数n,w,分别代表选手总数与获奖率。
第 2 行有n 个非负整数,依次代表逐一评出的选手成绩
【输出格式】 
 输出文件名为 live.out。
只有一行,包含n 个非负整数,依次代表选手成绩逐一评出后,即时的获奖分数线。相邻两个整数间用一个空格分隔。
【样例 1 输入】 
 10 60
200 300 400 500 600 600 0 300 200 100
【样例 1 输出】 
 200 300 400 400 400 500 400 400 300 300
【样例 1 解释】


第一行:已评测选手人数;第二行:计划获奖人数;其余行:已评测选手的分数从高到低排列(其中,分数线用粗体标出)。
注意,在第 9 名选手的成绩评出之后,计划获奖人数为 5 人,但由于有并列,因此实际会有 6 人获奖。 
【样例 2 输入】 
10 30
100 100 600 100 100 100 100 100 100 100 
【样例 2 输出】 
100 100 600 600 600 600 100 100 100 100
【数据范围与提示】 
测试点编号
n
1~3
= 10
4~6
= 500
7~10
= 2000
11~17
= 10000
18~20
= 100000
对于所有测试点,每个选手的成绩均为不超过600 的非负整数,获奖百分比
在计算计划获奖人数时,如用浮点类型的变量(如 C/C++中的float、double,Pascal 中的 real、double、extended 等)存储获奖比例

Input

 1 行两个正整数n,w,分别代表选手总数与获奖率。

 行有 n 个非负整数,依次代表逐一评出的选手成绩

Output

只有一行,包含 n 个非负整数,依次代表选手成绩逐一评出后,即时的获奖分数线。相邻两个整数间用一个空格分隔。

Sample Input Copy

10 60
200 300 400 500 600 600 0 300 200 100

Sample Output Copy

200 300 400 400 400 500 400 400 300 300

HINT

【样例 解释】

1

2

3

4

5

6

7

8

9

10

1

1

1

2

3

3

4

4

5

6

200

300

400

500

600

600

600

600

600

600

200

300

400

500

600

600

600

600

600

 

200

300

400

500

500

500

500

500

 

 

200

300

400

400

400

400

400

 

 

 

200

300

300

300

300

300

 

 

 

 

200

200

300

300

300

 

 

 

 

 

0

200

200

200

 

 

 

 

 

 

0

200

200

 

 

 

 

 

 

 

0

100

 

 

 

 

 

 

 

 

0

第一行:已评测选手人数;第二行:计划获奖人数;其余行:已评测选手的分数从高到低排列(其中,分数线用粗体标出)。

注意,在第 名选手的成绩评出之后,计划获奖人数为 人,但由于有并列,因此实际会有 人获奖。

Source/Category