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

Задача . B. Красивая последовательность


Последовательность целых чисел называется красивой если абсолютная разница между любыми двумя соседними числами равна \(1\). Более формально, последовательность \(s_1, s_2, \ldots, s_{n}\) красивая, если \(|s_i - s_{i+1}| = 1\) для всех \(1 \leq i \leq n - 1\).

У Вани есть \(a\) чисел равных \(0\), \(b\) чисел равных \(1\), \(c\) чисел равных \(2\) и \(d\) чисел равных \(3\). Он хочет построить красивую последовательность используя все эти \(a + b + c + d\) чисел.

Оказалось, что это непростая задача и Ваня не справился решить ее. Помогите Ване!

Входные данные

В единственной строке находятся четыре неотрицательных целых числа \(a\), \(b\), \(c\) и \(d\) (\(0 < a+b+c+d \leq 10^5\)).

Выходные данные

Если невозможно построить красивую последовательность, удовлетворяющую ограничениям, выведите «NO» (без кавычек) в единственной строке.

Иначе, выведите «YES» (без кавычек) в первой строке. Затем, во второй строке выведите \(a + b + c + d\) целых чисел, разделенных пробелом — найденная красивая последовательность. Среди выведенных чисел должно быть ровно \(a\) чисел, равных \(0\), ровно \(b\) чисел, равных \(1\), ровно \(c\) чисел, равных \(2\) и ровно \(d\) чисел, равных \(3\).

Если существует несколько возможных ответов, вы можете вывести любой из них.

Примечание

В первом тесте, легко заметить, что последовательность красивая, потому что абсолютная разница между любыми двумя соседними числами равна \(1\). Также, в последовательности ровно два числа, равных \(0\), \(1\), \(2\) и ровно одно число, равное \(3\).

Можно доказать, что невозможно построить красивые последовательности во втором и третьем тесте.


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

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

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