Допустим, у вас есть $$$n$$$ коробок. В $$$i$$$-й коробке бесконечно много шариков цвета $$$i$$$. Иногда вам нужно получить шарик какого-то определенного цвета; но вы слишком ленивы, чтобы брать шарик из коробки самостоятельно.
Вы купили двух роботов, которые будут приносить вам шарики. Теперь этих роботов надо запрограммировать. Для этого вы должны сформировать два списка $$$[a_1, a_2, \dots, a_k]$$$ и $$$[b_1, b_2, \dots, b_{n-k}]$$$, где список $$$a$$$ — это список коробок, назначенных первому роботу, а список $$$b$$$ — коробки, назначенные второму роботу. Каждое целое число от $$$1$$$ до $$$n$$$ должно принадлежать ровно одному из этих списков.
Когда вы даете роботам команду «принести шарик цвета $$$x$$$», они выполняют ее следующим образом. Каждый робот проходится по тому списку коробок, который был назначен этому роботу (в том порядке, в котором коробки находятся в списке), и просматривает содержимое каждой коробки. Первый робот тратит $$$s_1$$$ секунд, чтобы просмотреть содержимое коробки; второй робот тратит $$$s_2$$$ секунд. Как только какой-то робот найдет коробку с шарами цвета $$$x$$$ и просмотрит ее содержимое, поиск завершается. Время поиска — это количество секунд, прошедшее от начала поиска до того, как один из роботов просмотрит содержимое коробки $$$x$$$. Если робот просмотрел все коробки, назначенные ему, после этого он ничего не делает.
Например, пусть $$$s_1 = 2$$$, $$$s_2 = 3$$$, $$$a = [4, 1, 5, 3, 7]$$$, $$$b = [2, 6]$$$. Если вы запросите шарик цвета $$$3$$$, произойдет следующее:
Вы планируете запросить шарик цвета $$$1$$$ $$$r_1$$$ раз, шарик цвета $$$2$$$ — $$$r_2$$$ раз, и так далее. Составьте списки $$$a$$$ и $$$b$$$ таким образом, чтобы суммарное время поиска было как можно меньше.
В первой строке выведите одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор входных данных состоит из двух строк:
Дополнительное ограничение на входные данные: сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных выведите две строки. В первой строке выведите список $$$a$$$, во второй — список $$$b$$$. Каждый список нужно вывести следующим образом: сначала размер списка, потом его элементы.
Если оптимальных ответов несколько, выведите любой из них.
37 3 18 6 4 4 4 1 75 1 101 1 1 1 18 1 14 5 6 8 1 7 3 2
2 5 6 5 1 7 2 4 3 5 4 3 5 2 1 0 4 4 2 7 5 4 6 3 1 8
Название |
---|