CF994B Knights of a Polygonal Table
题目描述
有 $n$ 个骑士想决战。每个骑士都有能力值,且身上带有一些金币。如果骑士 $A$ 的能力值大于骑士 $B$ ,那么骑士 $A$ 就可以杀死骑士 $B$ ,并获得骑士 $B$ 身上的所有金币。但就算是骑士也不会残忍过度,他们最多只会杀死 $k$ 个骑士。对于每一位骑士,请你求出在决战后他身上金币的最大值。
输入格式
第 $1$ 行,有 $2$ 个整数,分别为骑士人数 $n$ 和杀人数上限 $k$ 。
(数据范围: $1 \leqslant n \leqslant 10^{5}$ , $0 \leqslant k \leqslant min(n - 1,\ 10)$ )
第 $2$ 行,有 $n$ 个整数,表示每个骑士的能力值 $p_i$ 。
第 $3$ 行,有 $n$ 个整数,表示每个骑士原有的金币 $c_i$ 。
(数据范围: $1 \leqslant p_i \leqslant 10^{9}$ , $0 \leqslant c_i \leqslant 10^{9}$ )
输出格式
$1$ 行内输出 $n$ 个整数,决战后每个骑士身上金币的最大值,每两个数间以单个空格隔开。
说明/提示
- 第 $1$ 组样例的解释:
第 $1$ 个骑士是最蒻的,因此他谁也不能杀,只能保留自己原有的金币。
第 $2$ 个骑士只能杀死第 $1$ 个骑士,因此他最多拥有 $2 + 1 = 3$ 个金币。
第 $3$ 个骑士是最蔃的,但他只能选择杀 $k = 2$ 个骑士。显然他会杀死第 $2$ 个骑士和
第 $4$ 个骑士,因为他们身上的金币更多。因此他最多拥有 $11 + 2 + 33 = 46$ 个金币。
第 $4$ 个骑士应该杀死第 $1$ 个和第 $2$ 个骑士,因此他最多拥有 $33 + 1 + 2 = 36$ 个金币。
- 第 $2$ 组样例的解释:
除了最蒻的第 $1$ 个骑士谁也不能杀,其他骑士都能杀死前一个骑士并获得他的金币。
- 第 $3$ 组样例的解释:
由于只有一个骑士在决战中,他无法杀死任何人。
感谢@Sooke 提供翻译