Codeforces Round 488 by NEAR (Div. 2) |
---|
Закончено |
В отличие от Рыцарей Круглого Стола, Рыцари Многоугольного Стола обделены благородством и с радостью убьют друг друга. Однако каждый рыцарь обладает своей силой, и один рыцарь может убить другого только если его сила больше, чем сила жертвы. Однако даже такого рыцаря будет мучить совесть, поэтому рыцарь может убить максимум $$$k$$$ других рыцарей.
Также у каждого рыцаря есть некоторое количество монет. При убийстве рыцарь может забрать все монеты своей жертвы.
Сейчас каждый рыцарь задумался: а какое наибольшее количество монет у него может оказаться, если убивать других рыцарей будет только он?
Вам предстоит ответить на этот вопрос для каждого рыцаря.
В первой строке даны два числа $$$n$$$ и $$$k$$$ $$$(1 \le n \le 10^5, 0 \le k \le \min(n-1,10))$$$ — количество рыцарей и число $$$k$$$, описанное в условии.
Во второй строке записаны $$$n$$$ чисел $$$p_1, p_2 ,\ldots,p_n$$$ $$$(1 \le p_i \le 10^9)$$$ — силы рыцарей. Все $$$p_i$$$ различны.
В третьей строке записаны $$$n$$$ чисел $$$c_1, c_2 ,\ldots,c_n$$$ $$$(0 \le c_i \le 10^9)$$$ — количества монет у рыцарей.
Выведите $$$n$$$ чисел — наибольшее количество монет у каждого рыцаря.
4 2
4 5 9 7
1 2 11 33
1 3 46 36
5 1
1 2 3 4 5
1 2 3 4 5
1 3 5 7 9
1 0
2
3
3
Рассмотрим первый пример.
Во втором примере первый рыцарь не может никого убить, а все остальные должны убить одного рыцаря, имеющего номер, на один меньший.
В третьем примере всего один рыцарь, он не может никого убить, хотя очень хочет.
Название |
---|