printРабочее место участника

printЗадачи

2100. Сумма квадратов

Ограничения: время – 2s/4s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Паша и Никита играют в новую компьютерную игру. В игре есть `n` карточек с числами от 0 до `n\ -\ 1`. Карточка с числом `b` увеличивает силу персонажа на `b` единиц и увеличивает запас энергии на `b^2` единиц. Паша и Никита играют друг против друга. И при этом хотят, чтобы игра была как можно более интересной. Для этого они решили, что их персонажи должны иметь одинаковую силу и одинаковый запас энергии. Помогите им.
Более формально, у вас есть набор чисел от 0 до `n\ -\ 1`. Вам требуется его разбить на два таких непересекающихся набора `a_i` и `b_j`, таких что `∑\ a_i\ =\ ∑\ b_j` и `∑\ a_i^2\ =\ ∑\ b_j^2`.
Первая строка входного файла содержит одно целое число `n` (`1\ ≤\ n\ ≤\ 100\ 000`) – количество карточек.
В первой строке выведите No, если невозможно разбить на два таких набора, или выведите Yes, если возможно. Если это возможно, во второй строке выведите числа, принадлежащие одному из двух наборов, разделенные пробелами. Числа можно выводить в любом порядке.

Пример ввода

8

Пример вывода

Yes
0 3 5 6

Пример ввода 2

2

Пример вывода 2

No
В первом примере:
`0\ +\ 3\ +\ 5\ +\ 6\ =\ 1\ +\ 2\ +\ 4\ +\ 7\ =\ 14`
`0^2\ +\ 3^2\ +\ 5^2\ +\ 6^2\ =\ 1^2\ +\ 2^2\ +\ 4^2\ +\ 7^2\ =\ 70`
Источник: neerc.ifmo.ru/school
loading