Codeforces Global Round 2 |
---|
Закончено |
Недавно школьник Евлампий установил одну интересную компьютерную игру, один из аспектов которой которой заключается в разделении своей армии на небольшое количество групп и сражение этих групп с группами противника. Рассмотрим упрощенную модель битвы.
В ближайшем сражении армии Евлампия предстоит сразиться с армией противника, состоящей из $$$m$$$ групп, $$$i$$$-я из которых имеет запас здоровья $$$hp_i$$$.
Сейчас у Евлампия есть $$$n$$$ одинаковых воинов. Перед любой битвой он должен разделить их на ровно $$$m$$$ групп (возможно, пустых) так, что суммарный размер групп равен $$$n$$$. Сражение происходит пошагово. На каждом шаге каждая из групп Евлампия нападает на ровно одну группу противника. Таком образом, каждый шаг задается массивом из $$$m$$$ чисел $$$a_1, a_2, \ldots, a_m$$$, обозначающих, что $$$i$$$-й отряд Евлампия нападает на $$$a_i$$$-й отряд противника. Разные отряды могут нападать на одну и ту же группу противника, на каждом шаге массив $$$a$$$ выбирается заново.
После каждого шага Евлампия здоровье каждой группы противника понижается на число, равное суммарному количеству воинов в группах, выбравших её для атаки. Группа противника считается уничтоженной, когда ее здоровье становится нулем или отрицательным. Войска Евлампия не теряют здоровье.
Евлампий понял, что предстоящее сражение отнимет у него всю ночь. Это очень его расстроило, ведь тогда он не успеет сделать домашнее задание. Теперь Евлампий просит вас написать программу, которая поможет ему победить в сражении за наименьшее число ходов и показать, как это сделать. Сможете ли вы ему помочь?
Иными словами, вам необходимо найти минимальное количество ходов, за которые можно уничтожить все войска противника, а после этого показать, как это сделать. Для этого опишите разбиение вашего войска на $$$m$$$ групп, и выведите последовательности $$$a$$$, описывающие каждый из ходов игры.
Первая строка содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \leq m \leq n \leq 10^{6}$$$), разделенные пробелом — количество воинов в армии Евлампия и число групп в армии противника. $$$m$$$ также равно числу групп, на которые Евлампий может разбить свою армию.
Вторая строка содержит $$$m$$$ целых чисел $$$hp_1, hp_2, \ldots, hp_m$$$ ($$$1 \leq hp_i \leq 10^{6}$$$) — здоровье групп противника.
Гарантируется, что сумма $$$hp_i$$$ не превышает $$$10^{6}$$$.
В первой строке выведите одно целое число $$$t$$$ — минимальное чисто ходов, необходимое Евлампию для победы в битве.
После этого выведите $$$m$$$ целых чисел $$$s_1, s_2, \ldots, s_m$$$ ($$$s_i \ge 0$$$, $$$s_1 + s_2 + \ldots + s_m = n$$$), обозначающих, что в $$$i$$$-й группе войска Евлампия будет $$$s_i$$$ воинов.
В каждой из следующих $$$t$$$ строках выведите $$$m$$$ целых чисел $$$a_1, a_2, \ldots, a_m$$$ ($$$1 \le a_i \le m$$$) — описание очередного хода Евлампия. Эти числа означают, что на очередном ходу $$$i$$$-я группа войска Евлампия должна атаковать $$$a_i$$$-ю группу войска противника. Разрешается нападать на уже уничтоженный отряд противника.
13 7 6 4 3 7 2 1 5
3 0 1 2 3 1 2 4 2 6 2 4 4 2 4 3 1 7 1 7 7 1 3 1 5 3 7 5 1
6 5 3 3 3 3 3
3 3 3 0 0 0 1 2 3 4 5 3 4 5 5 5 5 5 5 5 5
7 4 1 5 9 2
3 1 2 4 0 1 4 2 3 2 3 3 3 3 3 3 3
Первый пример показан на рисунке.
Название |
---|