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

Задача . C. Футбольный сезон


Совсем недавно закончился футбольный сезон в Берляндии. В каждом футбольном матче в Берляндии участвуют по две команды. Результатом матча может быть победа одной из команд, либо ничья. Победившая в матче команда получает \(w\) очков, а проигравшая команда получает \(0\) очков. Если результат игры ничейный, то обе команды получают по \(d\) очков.

Владелец команды столицы Берляндии захотел подвести итоги сезона, но все данные об играх его команды были утеряны. Осталась лишь информация о том, что команда столицы Берляндии провела за сезон \(n\) матчей, в которых набрала \(p\) очков.

Перед вами стоит задача определить три целых числа \(x\), \(y\) и \(z\) — сколько матчей выиграла, сыграла вничью и проиграла команда столицы Берляндии. Если подходящих ответов несколько, вы можете вывести любой из них. Если не существует ни одной подходящей тройки \((x, y, z)\), сообщите об этом.

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

В первой строке следуют четыре целых числа \(n\), \(p\), \(w\) и \(d\) \((1 \le n \le 10^{12}, 0 \le p \le 10^{17}, 1 \le d < w \le 10^{5})\) — количество матчей, количество очков, набранных в этих матчах, количество очков, которые получает команда за победу в матче, и количество очков, которые получает команда за матч, завершившийся вничью. Обратите внимание, что за победу в матче команда всегда получает больше очков, чем за ничейный результат, то есть \(w > d\).

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

Если не существует ни одного подходящего ответа, выведите \(-1\).

В противном случае, выведите три целых неотрицательных числа \(x\), \(y\) и \(z\) — количество матчей, в которых команда столицы Берляндии одержала победу, количество матчей, в которых она сыграла вничью, и количество матчей, в которых она потерпела поражение. Если подходящих троек \((x, y, z)\) несколько, разрешается вывести любую из них. Для выведенных чисел должны выполняться следующие условия:

  • \(x \cdot w + y \cdot d = p\),
  • \(x + y + z = n\).
Примечание

В первом примере один из подходящих ответов — \(17\) побед, \(9\) ничьих и \(4\) поражения. В таком случае команда столицы Берляндии набрала за сезон \(17 \cdot 3 + 9 \cdot 1 = 60\) очков и сыграла \(17 + 9 + 4 = 30\) матчей.

Во втором примере максимальное количество очков, которое можно было набрать равно \(10 \cdot 5 = 50\). Так как \(p = 51\), то ответа не существует.

В третьем примере команда столицы Берляндии набрала \(0\) очков, следовательно, все \(20\) матчей были проиграны.


Примеры
Входные данныеВыходные данные
1 30 60 3 1
17 9 4
2 10 51 5 4
-1
3 20 0 15 5
0 0 20

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

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