#P9587. 「MXOI Round 2」排名

    ID: 8840 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>动态规划,dp贪心洛谷原创O2优化排序前缀和洛谷月赛结构体

「MXOI Round 2」排名

题目描述

小 C 有一个长度为 nn 的数组 aa

小 C 定义,f(i)f(i)aia_i 的前排名,其中 f(i)f(i) 等于数组 aa 中大于 aia_i 的元素个数加 11

小 C 还定义,g(i)g(i)aia_i 的后排名,其中 g(i)g(i) 等于数组 aa 中大于等于 aia_i 的元素个数。

每次操作,小 C 需要选择一个不大于 nn 的正整数 tt,并将 ata_t 的值增加 11

小 C 想知道,对于每一个 1in1 \le i \le n,想要使 f(i)kg(i)f(i) \le k \le g(i),最少需要进行多少次操作?

可以证明一定存在一种操作方案使得 f(i)kg(i)f(i) \le k \le g(i)

输入格式

第一行三个整数 c,n,kc,n,k,其中 cc 表示测试点编号。c=0c=0 表示该测试点为样例。

第二行 nn 个整数,表示给定的数组 aa

输出格式

nn 行,每行一个整数,其中第 ii 行的整数表示想要使 f(i)kg(i)f(i) \le k \le g(i) 所至少需要进行的操作数。

0 6 3
1 1 4 5 1 4
3
3
0
2
3
0

提示

【样例解释 #1】

i=1i=1 时,小 C 可以选择 t=1t=1 并进行 33 次操作。此时 f(i)=2f(i)=2g(i)=4g(i)=4,满足 f(i)kg(i)f(i) \le k \le g(i)。可以证明此时小 C 至少需要进行 33 次操作。

i=4i=4 时,小 C 可以选择 t=3t=3 进行 11 次操作,再选择 t=6t=6 进行 11 次操作。此时 f(i)=1f(i)=1g(i)=3g(i)=3,满足 f(i)kg(i)f(i) \le k \le g(i)。可以证明此时小 C 至少需要进行 22 次操作。

【样例 #2】

见附加文件中的 rank/rank2.inrank/rank2.ans

该样例满足测试点 77 的限制。

【样例 #3】

见附加文件中的 rank/rank3.inrank/rank3.ans

该样例满足测试点 2020 的限制。

【数据范围】

对于 100%100\% 的数据,1kn5×1051 \le k \le n \le 5 \times 10^51ai1091 \le a_i \le 10^9

测试点编号 nn \le aia_i \le 特殊性质
161\sim6 20002000 10910^9 A
7107\sim10
111411\sim14 5×1055\times10^5 B
152015\sim20

特殊性质 A:保证对于所有的 1i<n1 \le i \lt n,都有 aiai+1a_i \ge a_{i+1}

特殊性质 B:保证 k=1k=1