Осенью этого года две российские команды вышли в групповой этап самого престижного клубного футбольного соревнования в мире — Лиги Чемпионов УЕФА. Сейчас эти команды уже начали играть на групповом этапе и ведут борьбу за выход в плей-офф. В данной задаче нас будет интересовать процесс жеребьевки группового этапа, то есть процедуры разбиения команд на группы.
Процесс жеребьевки выглядит следующим образом (правила, описанные в данной задаче, несколько упрощены по отношению к реальным). Пусть в групповом этапе будут принимать участие n команд (n кратно четырем). Команды должны быть разбиты на группы по четыре команды в каждой. Обозначим количество групп через m (
). Каждая команда имеет рейтинг — целое число, характеризующее предыдущие достижения команды. Команды упорядочиваются по убыванию рейтинга (никакие две команды не имеют одинаковый рейтинг).
После этого формируются четыре «корзины», каждая из которых будет содержать m команд: первые m команд с наибольшим рейтингом попадают в первую корзину, следующие m команд — во вторую, и так далее.
Далее m - 1 раз повторяется следующая процедура. Случайным образом выбирается по команде из каждой корзины: сначала из первой, затем из второй, потом из третьей, и в последнюю очередь из четвертой. Выбранные команды образуют очередную группу. После этого они удаляются из своих корзин.
Четыре команды, оставшиеся в корзинах после выполнения (m - 1) описанных процедур, образуют последнюю группу.
В реальной жеребьевке случайный выбор команды из корзины производится людьми — как правило, известными в прошлом футболистами. За неимением таковых среди нас, воспользуемся генератором случайных чисел, который устроен следующим образом. Его параметрами являются четыре целых положительных числа x, a, b, c. Каждый раз, когда происходит обращение к генератору случайных чисел, он производит следующие действия:
- вычисляет
; - заменяет параметр x на величину y (выполняет присваивание
); - возвращает x в качестве очередного случайного числа.
Операция
означает взятие остатка от деления:
,
.
Генератор случайных чисел будет использован в жеребьевке так: каждый раз, когда будет необходимо случайным образом выбрать команду из корзины, с его помощью будет генерироваться случайное число k. Команды, которые еще остаются в корзине, считаются пронумерованными последовательными целыми числами от 0 до s - 1 в порядке убывания рейтинга, где s — текущий размер корзины. Тогда из корзины выбирается команда с номером
.
По заданным Вам списку команд и параметрам генератора случайных чисел, определите результат жеребьевки.