Çoxbucaqlı Masanın Turniri#8783

Çoxbucaqlı Masanın Turniri

1 saniyə
64 meqabayt
Asan

Polygonal Cədvəl Turnirində iştirakçılar bir-birilə yarışaraq pul qazanmağa çalışırlar. Hər bir iştirakçının unikal gücü var və iştirakçı yalnız onun gücündən zəif olanlardan pulları qazana bilər. Lakin turnirin qaydalarına görə, hər bir iştirakçı ən çox digər rəqiblərdən pul qazana bilər.

Başlanğıcda, hər iştirakçının müəyyən sayda pulu var. Bir iştirakçı digərini məğlub etdikdə, məğlub etdiyinin bütün pullarını götürür.

Hər iştirakçı düşünür: yalnız öz təşəbbüsü ilə hücum etdikləri təqdirdə, maksimum nə qədər pul toplaya bilərdilər?

Sənin vəzifən bunları hər iştirakçı üçün təyin etməkdir.

Giriş

Birinci sətrdə iki tam ədəd və (1 \leq n \leq 10^5, 0 \leq k \leq \min(n-1, 30)) — iştirakçıların sayı və bir iştirakçının başlata biləcəyi maksimum hücum sayı verilir.

İkinci sətrdə tam ədədi p_1, p_2, \ldots, p_n (1 \leq p_i \leq 10^9) — iştirakçıların özünəməxsus gücləri (hamısı fərqlidir) verilir.

Üçüncü sətrdə tam ədədi c_1, c_2, \ldots, c_n (1 \leq c_i \leq 10^9) — hər iştirakçının başlanğıcda sahib olduğu pulun miqdarı verilir.

Çıxış

tam ədəd çap et — hər iştirakçı üçün toplaya biləcəyi maksimum pulun miqdarı.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading

Nümunə 3

Loading
Loading