Даны два целых числа, $$$n$$$ и $$$k$$$. Рассмотрим граф на $$$n$$$ вершинах, пронумерованных от $$$1$$$ до $$$n$$$, в котором изначально нет ребер.
Вам нужно назначить каждой вершине число; пусть $$$a_i$$$ — число, назначенное вершине $$$i$$$. Все $$$a_i$$$ должны быть различными целыми числами от $$$1$$$ до $$$n$$$.
После того как вы назначили числа для вершин, вы добавляете в граф ребра. Для пары вершин $$$(i, j)$$$ добавляется ребро между ними, если $$$|i - j| + |a_i - a_j| \le k$$$.
Ваша цель — создать граф, который можно разбить на минимально возможное (для заданных значений $$$n$$$ и $$$k$$$) количество клик. Каждая вершина графа должна принадлежать ровно одной клике. Напомним, что клика — это такое множество вершин, что каждая пара вершин в этом множестве соединена ребром.
Поскольку BledDest не особо подтянул свои навыки программирования, он не может решить задачу «дан граф, разбейте его на минимальное количество клик». Поэтому мы также просим вас вывести само разбиение.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 1600$$$) — количество наборов входных данных.
Каждый набор входных данных состоит из одной строки, содержащей два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 40$$$; $$$1 \le k \le 2n$$$).
Для каждого набора входных данных выведите три строки:
Если существует несколько ответов, выведите любой из них.
32 35 48 16
2 1 1 1 1 3 1 5 2 4 2 1 1 2 1 2 1 2 3 4 5 6 7 8 1 1 1 1 1 1 1 1 1
Название |
---|