printРабочее место участника

printЗадачи

178. Игра "Наказание жадности"

Ограничения: время – 1s/2s, память – 16MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (3)

Для игры используется `N` карточек, на каждой из которых записано целое положительное число. На первом этапе карточки перемешиваются и кладутся на стол числами вниз. Первый игрок («жадина») случайно берет по две карточки из кучи, карточку с большим числом он забирает себе, а карточку с меньшим числом – отдает второму игроку. В случае равенства чисел одну карточку он берет себе, а другую отдает сопернику. При распределении второй игрок видит обе карточки. После того как все карточки распределены, начинается второй этап игры («наказание»). Ход делает всегда первый игрок. Первый игрок кладет на стол числом вверх любую карточку по своему выбору из имеющихся у него на руках. Второй игрок смотрит на карточку, положенную первым игроком, и отвечает, выкладывая одну из своих карточек по собственному выбору. Игрок, который положил карточку с большим числом, забирает обе карточки и кладет в свою кучу выигранных карт. Эти карточки далее не участвуют в игре. Если игроки положили карточки с одинаковыми числами, то каждый забирает обратно свою карточку и кладет ее в кучу выигранных карт. Когда на руках у игроков не останется карт, они считают сумму чисел на выигранных картах. Побеждает игрок с большей суммой.
Напишите программу, которая вычислит результат игры при условии, что каждый из игроков стремится максимизировать свой выигрыш и не ошибается.
В первой строке ввода содержится одно целое четное число `N\ (2≤N≤200)` – количество карт. Далее следует `N/2` строк, в которых описывается в каком порядке вытаскивались карточки из кучи на первом этапе игры, в каждой строке содержится два целых числа в диапазоне от 1 до 1000, разделенных пробелом – числа на паре карточек, вытащенных первым игроком.
В выходной файл вывести два целых числа через пробел – суммы на выигранных карточках для первого и второго игрока.

Пример ввода

6
4 3
5 5
1 2

Вывод для примера

6 14
Примечание: после первого этапа игры у первого игрока на руках будут карточки с числами 2, 4 и 5, а у второго – 1, 3 и 5. Если первый игрок ходит карточкой с числом 5, то лучшим ходом для второго будет карточка с числом 1. Остальные карточки первого игрока с числами 2 и 4 будут выиграны вторым игроком, если он использует карточки с числами 3 и 5 соответственно.
loading