Черга
У магазині ABT («Amortized Binary Trees») стоять клієнтів в черзі на позиціях від до . Час, необхідний касиру для обслуговування -го клієнта, дорівнює .
Час, який потрібно провести в черзі клієнту, дорівнює сумі часів, необхідних касиру для обслуговування всіх клієнтів перед ним, плюс час, необхідний для обслуговування цього клієнта. Тобто, в черзі з людей з часи для кожної людини дорівнюють , і відповідно.
Щоб мінімізувати суму часів, які клієнтам потрібно провести в черзі перед тим, як їх обслуговуватимуть, вони погодились на переміщення. Однак -й клієнт не хоче переміщуватися на більше, ніж позицій назад від своєї початкової позиції (але всі не проти переміщення вперед на будь-яку кількість позицій). Яка мінімальна сума часів, яку клієнти можуть досягти?
Вхідні дані
Перший рядок містить одне ціле число — кількість клієнтів у черзі.
Другий рядок містить цілих чисел — кількість часу, необхідного касиру для обслуговування кожного клієнта.
Третій рядок містить цілих чисел — максимальна кількість позицій, на яку кожен клієнт згоден переміститися назад.
Вихідні дані
У єдиному рядку необхідно вивести мінімальну суму часів очікування, яку можна досягти.
Приклади
Примітка
У першому прикладі існує два припустимих способи перерозподілу клієнтів:
-й, -й і -й (нікого не переміщуємо);
-й, -й і -й;
-й, -й і -й;
-й, -й і -й.
Сума часів у цих випадках дорівнює:
;
;
;
.
Як ми бачимо, найкраща відповідь тут — . Можна показати, що іншого можливого розташування людей в цій черзі не існує.
У другому прикладі обидві людини можуть знаходитися на будь-якій позиції, тому обидва їх можливих розташування допустимі й дають рівні відповіді: .
У третьому прикладі можна показати, що жодного з людей не можна перемістити, і їх єдине допустиме розташування — початкове. Сума часу, яку люди проведуть в цій черзі, дорівнює .
Оцінювання
( бали): для всіх ;
( балів): ;
( балів): ;
( балів): для всіх ;
( балів): ;
( балів): для всіх ;
( балів): без додаткових обмежень.