题目描述
译自 ROI 2018 Day2 T3. Робомарафон (Robomarathon)
有 N 名机器人选手参加马拉松,选手的编号分别为 1…N。跑道包含 N 条分道,编号分别为 1…N。每位选手占据一条分道,i 号选手(简称 i 号)占据编号为 i 的分道(简称 i 道)。每条分道从起点到终点的路程均相同。已知 i 号跑完全程需要 ai 秒。
每条分道的起始点有一个发令喇叭,不过不是播声音的。裁判皮了一下,把有些分道上的发令喇叭关掉了。
时辰一到,所有开着的发令喇叭会同时发出起跑信号(下文简称发炮)。如果 i 道上发炮,i 号会立即起跑。
发令信号的传递速度为每秒钟 1 道。举个例子,如果有且只有四道上发炮,那么一秒后三号和五号会收到信号并立即起跑;两秒后二号和六号会收到信号并立即起跑。假设 i 号在第 xi 秒起跑,则他会在第 fi= ai+xi 秒冲线。
我们按照冲线顺序给选手排名。比如,如果 n=3, f1= f2= 4, f3= 5, 那么一号和二号并列第一,三号屈居第三。
可见,选手的排名取决于发令喇叭的开关状态。请求出每位选手的最好名次或最差名次。
输入格式
第一行:n,p, p=1 或 2, 1 表示你需要求出最好名次,2 表示你需要求出最差名次。
第二行:a1…an
5 1
8 5 5 7 7
3
1
1
2
1
5 2
8 5 5 7 7
5
3
2
4
5
数据范围与提示
对于所有数据,0<ai≤109。
子任务 # |
分值 |
测试点数量 |
n⩽ |
p= |
计分方式 |
1 |
10 |
|
20 |
1 |
min |
2 |
10 |
2 |
3 |
30 |
30 |
4×105 |
1 |
sum |
4 |
50 |
50 |
2 |
子任务 #3 中,各测试点的大小:
测试点 |
n= |
测试点 |
n= |
测试点 |
n= |
测试点 |
n= |
测试点 |
n= |
1 |
100 |
7 |
1.5×104 |
13 |
7×104 |
19 |
1.3×105 |
25 |
2×105 |
2 |
500 |
8 |
2×104 |
14 |
8×104 |
20 |
1.4×105 |
26 |
2.4×105 |
3 |
1000 |
9 |
3×104 |
15 |
9×104 |
21 |
1.5×105 |
27 |
2.8×105 |
4 |
2500 |
10 |
4×104 |
16 |
99999 |
22 |
1.6×105 |
28 |
3.2×105 |
5 |
4999 |
11 |
5×104 |
17 |
1.1×105 |
23 |
1.7×105 |
29 |
3.6×105 |
6 |
104 |
12 |
6×104 |
18 |
1.2×105 |
24 |
1.8×105 |
30 |
4×105 |
子任务 #4 中,各测试点的大小:
测试点 |
n= |
测试点 |
n= |
测试点 |
n= |
测试点 |
n= |
测试点 |
n= |
1 |
100 |
11 |
2500 |
21 |
3×104 |
31 |
109999 |
41 |
2.2×105 |
2 |
200 |
12 |
3000 |
22 |
3.5×104 |
32 |
1.2×105 |
42 |
2.4×105 |
3 |
300 |
13 |
4000 |
23 |
4×104 |
33 |
1.3×105 |
43 |
2.6×105 |
4 |
400 |
14 |
4999 |
24 |
4.5×104 |
34 |
1.4×105 |
44 |
2.8×105 |
5 |
500 |
15 |
7500 |
25 |
5×104 |
35 |
1.5×105 |
45 |
3×105 |
6 |
750 |
16 |
104 |
26 |
6×104 |
36 |
1.6×105 |
46 |
3.2×105 |
7 |
1000 |
17 |
1.25×104 |
27 |
7×104 |
37 |
1.7×105 |
47 |
3.4×105 |
8 |
1250 |
18 |
1.5×104 |
28 |
8×104 |
38 |
1.8×105 |
48 |
3.6×105 |
9 |
1500 |
19 |
2×104 |
29 |
9×104 |
39 |
1.9×105 |
49 |
3.8×105 |
10 |
1999 |
20 |
2.5×104 |
30 |
99999 |
40 |
2×105 |
50 |
4×105 |