Codeforces Round 603 (Div. 2) |
---|
Закончено |
На всеми известной тестирующей системе MathForces устраивается розыгрыш $$$n$$$ единиц рейтинга. Раздача рейтинга будет происходить по следующему алгоритму: если в мероприятии принимает участие $$$k$$$ участников, то $$$n$$$ рейтинга поровну распределяется между ними и округляется в сторону ближайшего меньшего целого числа. По окончании распределения может остаться неиспользованный рейтинг — он не достаётся никому из участников.
К примеру, если $$$n = 5$$$ и $$$k = 3$$$, то каждый участник получит $$$1$$$ единицу рейтинга, а также $$$2$$$ единицы рейтинга останутся неиспользованными. Если же $$$n = 5$$$, а $$$k = 6$$$, то ни у кого из участников не увеличится рейтинг.
Вася участвует в этом розыгрыше рейтинга, но не владеет информацией об общем количестве участников этого мероприятия. Поэтому он хочет узнать, какие различные значения приращения рейтинга он может получить в результате этого розыгрыша, и просит Вас о помощи.
Например, если $$$n=5$$$, то искомый ответ равен последовательности $$$0, 1, 2, 5$$$. Каждое из значений последовательности (и только они) может быть получено как $$$\lfloor n/k \rfloor$$$ для некоторое подходящего целого положительного $$$k$$$ (где $$$\lfloor x \rfloor$$$ — округлённое вниз значение $$$x$$$): $$$0 = \lfloor 5/7 \rfloor$$$, $$$1 = \lfloor 5/5 \rfloor$$$, $$$2 = \lfloor 5/2 \rfloor$$$, $$$5 = \lfloor 5/1 \rfloor$$$.
Напишите программу, которая по заданному $$$n$$$ находит последовательность всех возможных приращений рейтинга.
В первой строке входных данных записано целое число $$$t$$$ ($$$1 \le t \le 10$$$) — количество наборов входных данных в тесте.
Далее следуют описания $$$t$$$ наборов входных данных, по одному описанию в строке. Каждая строка содержит целое число $$$n$$$ ($$$1 \le n \le 10^9$$$) — суммарное количество разыгрываемого рейтинга.
Выведите ответы на $$$t$$$ заданных наборов входных данных. Каждый ответ должен состоять из двух строк.
В первой строке выведите число $$$m$$$ — количество различных значений приращения рейтинга, которые может получить Вася.
В следующей строке выведите $$$m$$$ различных чисел — сами значения приращения рейтинга в порядке возрастания.
4 5 11 1 3
4 0 1 2 5 6 0 1 2 3 5 11 2 0 1 3 0 1 3
Название |
---|