Сложность: 27%
- Все сделали ставку? Я брошу кубик уже через минуту!
У дилера есть -гранный кубик. За столом сидит игроков. Перед началом игры каждый игрок ставит произвольное количество фишек на одну из граней кубика.
Когда все сделали ставку, дилер раз бросает кубик. -тый бросок определяет судьбу ставки -того игрока. Если выпадает грань, которую загадал игрок, дилер увеличивает его ставку в раз и возвращает игроку. В противном случае дилер забирает ставку игрока себе.
Дилер настолько ловкий, что способен выкинуть на кубике любую грань, какую захочет, но должен соблюдать правило «случайного распределения»: если за столом сидит участников, то за один круг каждая грань должна выпасть ровно раз ( всегда кратно ), иначе игроки взбунтуются и спросят, кто вы такой, чтоб это сделать.
Подберите для каждого участника грань, которую нужно выкинуть дилеру, чтобы максимизировать свою прибыль и соблюсти правило случайного распределения. В ответ выведите только максимальную прибыль, которую может получить дилер.
Входные данные
В первой строке находятся числа и (, кратно ) – количество участников, сидящих за столом и количество граней у кубика дилера.
В следующих строках находятся по два целых числа () и () - номер грани, на которую ставит -тый игрок и его ставка в фишках соответственно.
Выходные данные
Выведите одно число: максимальную прибыль в фишках, которую может получить дилер. Если в лучшем случае дилер уходит в минус, число может быть отрицательным.
Подзадачи
№ | баллы | необх. подзадачи | ограничения |
1 | 6 | - | |
2 | 14 | 1 | |
3 | 20 | - | |
4 | 60 | 1, 2, 3 | Нет дополнительных ограничений |
STDIN | STDOUT |
8 4 2 1 4 7 3 11 1 3 3 5 3 6 2 9 4 4 | 46 |
2 2 1 3 1 5 | -1 |
Примечание
Во втором примере мы можем проиграть первому участнику и выплатить ему фишек, тогда наш баланс будет . Зато после этого можно выиграть фишек у второго игрока и увеличить баланс до .