k лежат rival[k] его стрел. Теперь очередь Боба: у него arrows стрел, и он может направить каждую в любой сектор.
Сектор k достаётся Бобу, если его стрел там строго больше, чем стрел соперника; иначе сектор остаётся за соперником (если в секторе нет ничьих стрел, очки не получает никто). Очки Боба — сумма стоимостей его секторов.
Боб стреляет так:
- в каждый сектор, который он хочет забрать, отправляет ровно rival[k] + 1 стрел;
- все оставшиеся стрелы уходят в сектор 0.
Выберите набор секторов, дающий Бобу наибольшую сумму очков. Если таких наборов несколько, сравнивайте их начиная с сектора 11 вниз: в первом секторе, где наборы различаются, предпочтите тот, в котором Боб этот сектор **не** берёт.
Верните массив из 12 чисел — сколько стрел Боб выпускает в каждый сектор. Сумма массива равна arrows.arrows=4, rival=[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1] → [0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0]
Сектор 11 стоит 2 стрелы, 10 — 3, 9 — 2, а сектора 1–8 — по одной. Наборы 11 + 8 + 7 и 8 + 7 + 6 + 5 дают по 26 очков за 4 стрелы, больше не получить. Сравниваем с сектора 11: во втором наборе Боб его не берёт, поэтому выбирается второй.
arrows=3, rival=[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] → [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1]
Все сектора с 1 по 11 свободны, на каждый хватит одной стрелы: берём 11, 10 и 9 — 30 очков.
arrows=6, rival=[0, 1, 0, 2, 0, 0, 1, 0, 0, 0, 0, 2] → [0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0]
arrows ≤ 10⁵len(rival) = 12rival[k] ≤ 10⁵arrows=4, rival=[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1]
[0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 112 тестов на сервере, включая скрытые.