Задача №114693. Проверка олимпиады

На национальную олимпиаду по математике приехало \(n\) участников со всей страны, каждый из которых сдал свою работу. Теперь перед жюри стоит непростая задача: проверить все \(n\) работ как можно быстрее.

Процесс проверки происходит следующим образом. Каждый из \(m\) проверяющих может выбрать одну из работ участников, которую он будет проверять в течение одного часа. Два проверяющих не могут одновременно проверять одну и ту же работу, поэтому различные проверяющие должны выбрать различные работы. Некоторые проверяющие могут ничего не выбрать. Через час проверка оканчивается, и работы заново распределяются между проверяющими.

Чтобы сделать проверку более объективной, жюри придумало следующее правило: каждую работу должны проверить как минимум \(k\) разных людей.

Помогите жюри составить подходящее расписание проверки, занимающее минимальное время.

Входные данные

На единственной строке даны три целых числа \(n\), \(m\), \(k\) \((1 \le k \le m \le n \le 500)\) – количество работ, общее число проверяющих и минимальное число людей, которые должны проверить каждую работу.

Выходные данные

В первой строке выведите единственное целое число \(t\) — минимальное число часов, которое потребуется, чтобы каждую работу проверило хотя бы \(k\) проверяющих.

Далее выведите \(t\) строк по \(n\) чисел \(C_{ij}\) \((0 \le C_{ij} \le m)\), обозначающих номер проверяющего работы номер \(j\) во время часа \(i\). \(C_{ij} = 0\) означает, что работа \(j\) в час \(i\) не проверяется.

Если возможно несколько вариантов ответа, выведите любой из них.

Система оценки

Тесты к этой задаче состоят из семи групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов необходимых групп.

Доп. ограничения
Группа Баллы \(n\) \(m\) \(k\) Необх. группы Комментарий
0 0 Тесты из условия.
1 7 \(n \le 4\) \(m \le 4\) \(k \le 4\)
2 9 \(n \le 9\) \(m \le 9\) \(k \le 9\) \(0, 1\)
3 8 \(m = 1\) \(k = 1\)
4 13 \(n = m\)
5 17 \(3, 4\) \(n\) делится на \(m\).
6 11 \(k = 1\) \(3\)
7 35 0–6
Примеры
Входные данные
3 1 1
Выходные данные
3
1 0 0 
0 1 0 
0 0 1 
Входные данные
4 2 2
Выходные данные
4
1 2 0 0 
0 0 1 2 
2 1 0 0 
0 0 2 1 
Входные данные
5 3 2
Выходные данные
4
1 2 3 0 0 
3 0 0 1 2 
0 1 2 3 0 
0 0 0 0 1 
Сдать: для сдачи задач необходимо войти в систему