Задача №112551. Призы
Андрей Сергеевич работает воспитателем в детском саду. Недавно он придумал новую веселую игру, для участия в которой все дети разбились на n команд. В качестве призов для участников игры Андрей Сергеевич подготовил d конфет.
По итогам игры оказалось, что в команде, занявшей i -е место, ровно x i участников.
Теперь перед Андреем Сергеевичем стоит непростая задача: надо распределить конфеты. При этом должны выполняться следующие условия:
- Все участники одной команды должны получить поровну конфет: пусть участники команды, занявшей i -е место получат по a i конфет;
- Каждый ребенок должен получить хотя бы одну конфету: a i > 0 ;
- Участники команды, занявшей более высокое место, должны получить больше конфет: если i < j , то a i > a j
- Все конфеты должны быть распределены: a 1 x 1 + a 2 x 2 + ... a nx n = d
Первая строка содержит два целых числа n и d ( 1 ≤ n ≤ 100 , 1 ≤ d ≤ 10 6 ). Вторая строка содержит n целых чисел x 1 , ..., x n ( 1 ≤ x i ≤ 100 для всех i от 1 до n ).
Если разделить конфеты возможно, то в первой строке выведите YES , а во второй выведите n целых чисел: a 1 , a 2 , ..., a n . Если разделить конфеты указанным способом нельзя, выведите NO .
2 100 2 1
YES 49 2
2 6 2 1
NO