Masala N

Xotira 32 MB Vaqt 1000 ms
14

Robotlar Poygasi

"Kiber-Olimp" musobaqasida sizning jamoangizga N ta vazifadan iborat topshiriq kelib tushdi. Musobaqa shartiga ko'ra, jamoa N ta vazifani bajarishi kerak. Har bir vazifani bajarish uchun ma'lum bir T[i] vaqt kerak bo'ladi. Sizda bu vazifalarni bajarish uchun M ta robot mavjud.

Robotlarning ishlash prinsipi quyidagicha: Vazifalar ro'yxatda qanday tartibda kelgan bo'lsa, ularni xuddi shu ketma-ketlikni buzmagan holda robotlarga taqsimlash kerak. Ya'ni, birinchi robot ro'yxat boshidan boshlab ketma-ket bir nechta vazifani oladi. Ikkinchi robot esa birinchi robot ishini tugatgan vazifaning keyingisidan boshlab o'ziga vazifalarni oladi va hokazo. Hech bir robot vazifalarni tanlab yoki o'rnini almashtirib ola olmaydi.

Sizning vazifangiz — vazifalarni robotlar o'rtasida shunday taqsimlash kerakki, eng ko'p ish vaqt sarflagan (eng band bo'lgan) robotning umumiy ish vaqti imkon qadar minimal bo'lsin.


Kiruvchi ma'lumotlar:

Kiritish: Birinchi qatorda N (1≤N≤10^5) va M (1≤M≤10^5). Ikkinchi qatorda N ta butun son: T[1], ..., T[N] (1≤T[i]≤10^9).


Chiquvchi ma'lumotlar:

Minimal mumkin bo'lgan maksimal ish vaqti.


Misollar
# input.txt output.txt
1
7 3
8 4 7 5 6 3 2
12
Izoh:

Maqsadimiz — vazifalarni 3 ta robotga shunday taqsimlashki, eng ko'p ishlagan robotning umumiy ish vaqti imkon qadar kam bo'lsin. Javob 12. Keling, nima uchun aynan 12 ekanligini ko'rib chiqamiz.

Biz har bir robotning ish vaqtini 12 dan oshirmasdan barcha vazifalarni taqsimlay olamiz. Mana bir misol taqsimot:

  • 1-robot: 8 va 4 vaqtli vazifalarni oladi. Umumiy ish vaqti: 8 + 4 = 12.
  • 2-robot: 7 va 5 vaqtli vazifalarni oladi. Umumiy ish vaqti: 7 + 5 = 12.
  • 3-robot: 6, 3 va 2 vaqtli vazifalarni oladi. Umumiy ish vaqti: 6 + 3 + 2 = 11.