Задача A. Расписные салфеточки

Автор:Г. Гренкин   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:256 Мб
Выходной файл:output.txt  

Условие

У Марфы Геннадьевны имеется кусок очень красивой атласной ткани с выбитыми цветами. Длина куска составляет L см. Марфа Геннадьевна — большая рукодельница и любит делать всякие поделки. Она надумала сделать из ткани несколько салфеточек и подарить их на праздник своим подружкам.

Марфа Геннадьевна хочет разрезать этот кусок ткани ровно на N частей. При этом длина каждой части l должна быть целым числом и должно выполняться неравенство a ≤ l ≤ b (чтобы салфетки были не слишком маленькими и не слишком большими).

Напишите программу, позволяющую определить, можно ли разрезать кусок ткани ровно на N таких частей.

Формат входного файла

Входной файл содержит целые числа N L a b.

Формат выходного файла

Выходной файл должен содержать N целых чисел li, если задача имеет решение, и единственное число 0, если задача не имеет решения.

Ограничения

1 ≤ N ≤ 100

1 ≤ L ≤ 1000

1 ≤ a ≤ b ≤ 1000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
3 5 1 2
1 2 2
2
3 7 1 2
0

Разбор

Если решение задачи существует, то выполняются неравенства a ≤ li ≤ b, i = 1, 2, ..., N. При этом l1 + l2 + ...  + lN = L. Складывая эти неравенства, получим следующее неравенство: Na ≤ L ≤ Nb. Таким образом, для того чтобы решение существовало, необходимо, чтобы выполнялось данное неравенство. Если данное неравенство не выполняется, то решения нет.

Предположим, что данное неравенство выполняется. Покажем, что в этом случае решение всегда есть.

Пусть длины всех N частей изначально равны a. Если L = Na, то решение найдено. Если L > Na, то заменим длину одной части на b. Если L = b + (N − 1)a, то решение найдено. Если L < b + (N − 1)a, то можно заменить длину одной части c b на x, где x = L − (N − 1)a. При этом гарантированно a ≤ x ≤ b. Если L > b + (N − 1)a, то заменим длину ещё одной части на b. И так далее.

Алгоритм выглядит следующим образом. Найдём минимальное i, для которого ib + (N − i)a ≥ L. Тогда длины (i − 1) частей возьмём равными b, длины (N − i) частей возьмём равными a, а длину оставшейся одной части возьмём равной x = L − (N − i)a − (i − 1)b. При этом гарантированно a ≤ x ≤ b.


0.131s 0.009s 13