АВТ
Language: Russian
English

Remote Training on Programming

Problems Online status Contests
News FAQ E-learning
For authors:
Register  ||  Login
 
Hello, Guest! Please login or register.

1430. CodeFights

Time Limit: 1 seconds
Memory Limit:262144KB
Points:100
View Problem Statistics Submit Problem added Игорь Андрианов

Проект CodeFights представляет собой бои программистов в поисках ошибок в коде, проводящиеся через Интернет. Каждый матч  состоит из 3 раундов по 180 секунд каждый. В течение раунда участникам предлагается найти логическую ошибку в одной строчке данного им на изучение кода и отправить ответ на сервер.

Максимальное число баллов, которые можно получить за один раунд, равно 100. Это число баллов получает участник, который первым верно сдаёт задачу, не используя безопасных отправок (см. ниже).

Если второй участник видит, что первый уже верно сдал задачу, то максимум, который он может набрать, это 50 баллов.

Возможна ситуация, когда оба участника получат по 100 баллов. Дело в том, что компиляция решения, его запуск на проверяющем сервере и проверка занимают некоторое время. Например, пусть первый участник отослал верное решение на 10-й секунде, но при этом компиляция, запуск и проверка на сервере заняли 3 секунды. Тогда второй участник увидит результат первого только на 13-й секунде. Получается, что если второй участник отправит своё решение в промежуток  с 10-й по 13-ю секунды (включительно), то он тоже получит 100 баллов.

Примечание. Заметим, что у нас могут одновременно (на одной и той же секунде) произойти два события: стал известен результат проверки одного  участника и отправлено на проверку решение другого. В этом случае действует правило «отправляется прежде», то есть считается, что отправка задачи на проверку произошла раньше, чем отображение результата соперника в интерфейсе.

Также правила предусматривают возможность сдать задачу при помощи безопасной попытки – в этом случае неверное решение можно попробовать сдать ещё раз. Однако, в момент сдачи верного решения из максимального количества баллов, которое мог бы получить участник, вычитается штраф в размере одной четвертой от этих баллов за каждую безопасную попытку (получившиеся в итоге баллы округляются).

Например, если при использовании обычной попытки участник получил бы 100 баллов, то при сдаче безопасной попыткой он получит только 75. Если он два раза воспользовался безопасной попыткой (первый раз – неправильно), то получит 50 баллов. Если три раза (первые два – неправильно), то получит только 25 баллов. В случае, если другой участник уже сдал задачу корректно, то баллы за решение с одной, двумя и тремя безопасными попытками будут, соответственно, следующие: 38, 25, 13. Более трёх раз безопасную отправку использовать нельзя. Однако, после неправильной безопасной попытки можно использовать обычную.

Если участник отправляет неправильное решение обычной попыткой, то он получает −25 очков, и этот раунд для него заканчивается.

Победителем матча признается игрок, у которого суммарное число баллов за три раунда больше. В случае равенства баллов объявляется ничья.

Перед началом матча участнику разрешено выбрать язык программирования из следующего списка: CPP, JAVA, PYTHON, JS. Известно, что время компиляции, запуска и проверки решения на CPP составляет 2 секунды, JAVA — 4 секунды, PYTHON — 2 секунды, JS — 1 секунда.

Вам дан журнал отправки решений для одного из матчей. К сожалению, из-за технического сбоя информация о том, какие языки использовали участники, могла оказаться частично утраченной. Требуется определить возможные результаты матча.

 

Входные данные. Первые две строки входных данных содержат названия языков первого и второго участника. Если данные о языке участника оказались утрачены, то вместо названия языка будет слово "UNKNOWN" (без кавычек).

Далее идут три группы по две строки журнал отправки решений участниками. Каждая такая группа строк соответствует одному раунду, где первая строка — журнал отправки решений первого участника, вторая строка —  второго.

Каждая такая строка содержит набор разделенных пробелами целых чисел, при этом перед каждым числом стоит '++', '+', '–' или '––', где:

++i означает, что участник успешно сдал задачу, отправив решение на i-й секунде с помощью обычной попытки,

+i означает, что участник успешно сдал задачу, отправив решение на i-й секунде с помощью безопасной попытки,

––i означает, что участник неверно сдал задачу, отправив решение на i-й секунде с помощью обычной попытки (и получил штраф −25 баллов),

i означает, что участник неверно сдал задачу, отправив решение на i-й секунде с помощью безопасной попытки (если позже он всё же сдаст задачу, то потеряет 1/4 баллов, которые мог бы получить).

Например, строка '−10 15 ++20' означает, что участник на 10-й и 15-й секундах отправил некорректные решения с помощью безопасной отправки, а на 20-й секунде отправил верное решение (и получил за него половину баллов от тех, что мог бы получить).

Гарантируется, что входные данные соответствуют описанным правилам. В частности, в каждой строке имеется не более четырёх "слов", разделенных пробелом. Слово с префиксом "++", "+" или "−−" гарантированно является последним в строке. Строка может быть пустой, если  участник ничего не отправлял в течение раунда. Все числа в строке положительные и не превышают 180.

 

Выходные данные. Выведите список возможных результатов матча. Каждый результат должен располагаться в отдельной строке и состоять из баллов первого участника, двоеточия и баллов второго участника. Результаты должны быть отсортированы сначала по баллам первого участника, потом по баллам второго в порядке возрастания. Список не должен содержать повторов.

 

Примеры

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

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

JAVA

JS

+10

++5

-10 +14

+20

--20

-10 -12 -14 ++20

63:163

 

JAVA

UNKNOWN

++100

++103

++103

++100

++75

-20

250:200

300:200

 

 


View Problem Statistics Submit Problem discussion Author/source:
Problems from Contests and Camps / Vologda Students Contests / XVIII Interuni Olympiad 2015 /
1429. C - Crosses 1430. 1431. E - Fraction 1432. F - Sequence 1433. G - Olympiad
Problems from Contests and Camps / School olympiads and couses of Vologda region / Impulse - 2019 / Additional Problems /
1429. 03 - Crosses 1430. 1431. 05 - Fraction 1432. 06 - Sequence 1433. 07 - Olympiad
time generating 0.109 sec.
© Copyright VSU, AVT, Nosov D.A., Andrianov I.A.