Codeforces Round 770 (Div. 2) |
---|
Закончено |
Вы работаете в известном универмаге, который использует передовые технологии и машинный труд — а, иначе говоря, роботов!
Отдел, в котором вы работаете, продает $$$n \cdot k$$$ товаров. Первый товар стоит $$$1$$$ доллар, второй — $$$2$$$ доллара, и так далее: $$$i$$$-й товар стоит $$$i$$$ долларов. Товары расположены на полках и образуют прямоугольную сетку: на каждой из $$$n$$$ полок расположено по $$$k$$$ товаров. Мы будем обозначать цену $$$j$$$-го товара (считая слева направо) на $$$i$$$-й полке за $$$a_{i,j}$$$, $$$1 \le i \le n, 1 \le j \le k$$$.
Время от времени роботы задумываются над следующим вопросом: какое среднее арифметическое цен товаров $$$a_{i,l}, a_{i,l+1}, \ldots, a_{i,r}$$$ для некоторой полки $$$i$$$ и индексов $$$l \le r$$$? К сожалению, старые роботы умеют работать только с целыми числами, и если средняя цена оказывается нецелым числом, они ломаются.
Вы заботитесь о благосостоянии роботов и потому хотите упорядочить товары так, чтобы роботы не могли сломаться. Формально, вы хотите найти такой двумерный массив $$$a$$$, что:
Выясните, возможно ли такое расположение товаров, и если да, приведите любой подходящий пример.
В первой строке дано одно число $$$t$$$ ($$$1 \le t \le 500$$$) — количество наборов входных данных.
Первая и единственная строка каждого набора содержит два числа $$$n$$$ и $$$k$$$ ($$$1 \le n, k \le 500$$$) — количество полок и длина каждой из них соответственно.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$500$$$, и сумма $$$k$$$ по всем наборам не превосходит $$$500$$$.
Выведите ответ для каждого набора входных данных:
Если подходящая расстановка существуют, выведите «YES» в отдельной строке. Далее в $$$n$$$ строках выведите по $$$k$$$ чисел — цены товаров на каждой из полок. Каждое число от $$$1$$$ до $$$n \cdot k$$$ должно встречаться ровно один раз.
Если ответа не существует, то выведите единственное слово «NO» в отдельной строке.
41 12 23 33 1
YES 1 YES 1 3 2 4 NO YES 1 2 3
Название |
---|