Олимпиадный тренинг

Задача . Федя и массив


Задача

Темы: Конструктив

Недавно Феде на день рождения подарили массив из \(n\) целых чисел, записаных по кругу, в котором для каждой пары соседних элементов (\(a_1\) и \(a_2\), \(a_2\) и \(a_3\), \(\ldots\), \(a_{n - 1}\) и \(a_n\), \(a_n\) и \(a_1\)) модуль их разности равен \(1\) (два соседних элемента отличаются ровно на \(1\)).

Назовём локальным максимумом элемент, который больше обоих соседних элементов. Также назовём локальным минимумом элемент, который меньше обоих соседних элементов. Обратите внимание, что элементы \(a_1\) и \(a_n\) являются соседними.

К сожалению, Федя потерял массив, но он запомнил в нём сумму локальных максимумов \(A\) и сумму локальных минимумов \(B\).

По заданным \(A\) и \(B\) помогите найти любой из подходящих массивов.

Формат входных данных
В первой строке вводится целое число \(A\) (\(-10^{18} \leqslant A \leqslant 10^{18}\)).

Во второй строке вводится целое число \(B\) (\(-10^{18} \leqslant B \leqslant 10^{18}\), \(B < A\)).

В третьей строке вводится целое число \(t\) (\(0 \leqslant t \leqslant 1\)) — если \(t = 0\), то от вас требуется вывести только длину массива.

Гарантируется, что при \(t = 1\) выполняется \(A - B \leqslant 10^{5}\).

Обратите внимание, что входные данные могут быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#). Язык Python будет корректно работать и с типом int.

Формат выходных данных
В первой строке выведите одно число \(n\) — длину массива. При \(t = 0\) должно быть верно, что найдется хотя бы один подходящий массив с такой длиной.

Если \(t = 1\), то выведите во второй строке \(n\) чисел \(a_1, a_2, \ldots, a_n\) (\(-10^{18} \leqslant a_i \leqslant 10^{18}\)) — элементы массива.

Гарантируется, что при \(t = 1\) существует массив, размер которого не превосходит \(4 \cdot 10^5\).

Если \(t = 0\), то во второй строке выводить ничего не нужно.


Примечание

В первом примере локальными максимумами являются числа на позициях \(3\) и \(10\), а локальными минимумами числа на позициях \(6\) и \(8\).


Примеры
Входные данныеВыходные данные
1 3
-2
1
10
-2 -1 0 1 2 3 2 1 0 -1
2 1
-1
0
4

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w642
Python2
Комментарий учителя