print1727. Расписание турнира

printРасписание турнира

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Как известно, командные спортивные соревнования часто проводятся по круговой системе, когда любые две команды должны сыграть между собой ровно один матч. Круговой турнир проводится в несколько туров, в одном туре каждая команда может сыграть не более одного матча. Например, если в турнире участвуют 4 команды, то турнир можно провести в три тура: в первом туре команда 1 играет с командой 2, а команда 3 играет с командой 4, во втором туре 1 играет с 3, а 2 играет с 4, в третьем туре – 1 играет с 4, а 2 играет c 3.
Организаторам олимпиады Сочи-2014 необходимо организовать несколько командных турниров по круговой системе с участием различного числа команд. График олимпиады очень плотный, поэтому каждый турнир нужно провести в минимально возможное число туров. Для составления расписания каждого турнира они решили обратиться за помощью к программистам.
Во входном файле записано одно натуральное число `N` – количество команд, участвующих в турнире (`2\ ≤\ N\ ≤\ 100`).
В первой строке выведите минимальное количество туров `K`, необходимых для проведения кругового турнира из `N` команд. Каждая из `K` следующих строк содержит описание одного тура. В начале строки выведите количество игр `n_i`, которое необходимо сыграть в `i`-м туре. Далее идет `n_i` пар чисел – команды, которые играют в этом туре. Команды, играющие между собой, разделяются символом "-" (минус), а разные игры разделяются пробелом.

Пример ввода 1

4

Пример вывода 1

3
2 1-2 3-4
2 1-3 2-4
2 1-4 2-3

Пример ввода 2

3

Пример вывода 2

3
1 1-2
1 2-3
1 3-1
Источник: Московская олимпиада школьников по информатике, 2011/12 учебный год
loading