354. Матч МГУ бегуны против лыжников

Не решаласьСредняя

Каждую осень у главного здания МГУ на Воробьёвых горах проводится забег между командой лыжников и командой легкоатлетов с целью выяснить, кто круче бегает.

Для этого капитаны двух команд перед началом забега формируют списки участников. После окончания забега вычисляется результат каждой из команд. В зачёт командного турнира учитываются только те спортсмены, кто был включён в одну из двух команд. Участник, пришедший в забеге последним, приносит в копилку команды $1$ очко. Предпоследний — $2$ очка и т.д. Победитель забега приносит своей команде число очков, равное количеству участников. Чем больше в команде участников, тем больше очков набирает команда. Для всех участников время преодоления дистанции различное.

Известно, что все участники обеих команд прошлого года будут участвовать и в этом. Перед капитаном команды лыжников лежит протокол прошлогоднего забега и список желающих участвовать в команде в этом году. Ему следует определить, кого из желающих включить в состав команды.

Было замечено, что не всегда увеличение числа участников своей команды оказывается выигрышной стратегией с точки зрения разности баллов двух команд. Капитан команды лыжников хочет построить алгоритм, который для списка новых участников подскажет, кого добавить в свою команду, чтобы получить как можно большую разность между количеством очков у его команды и команды соперников (либо наибольших отрыв от команды легкоатлетов, либо минимальное отставание).

В рамках построения алгоритма капитан не учитывает возможные изменения команды легкоатлетов и считает, что все участники в этом году покажут такое же время как и в прошлом.

Формат ввода

В первой строке задаются два целых положительных числа $n$ и $k$ — количество участников в прошлом году и количество заявок, соответственно ($2 \le n \le 2 \cdot 10^5, 1 \le k \le 2 \cdot 10^5$).

Затем заданы результаты забега прошлого года. Протоколы задаются $n$ строками, каждая из этих строк имеет вид $id~result~team$, где $id$ — номер участника, $result$ — время, за которое участник может преодолеть дистанцию, и $team$ — команда участника.

Ограничения: $1 \le id \le 10^9$, все $id$ различные; $1 \le result \le 10^9$, все $result$ различные; team = [RUN, SKI], причем RUN обозначает команду легкоатлетов, а SKI — команду лыжников.

Гарантируется, что среди этих $n$ участников есть хотя бы один участник от каждой команды.

Далее заданы $k$ строк с заявками в том же формате, что и в протоколе (гарантируется, что все заявки в команду лыжников, то есть team = SKI).

Формат вывода

Выведите одно целое число — наибольшую разность между количеством очков у команды лыжников и команды легкоатлетов.

Ограничения

Ограничение времени

10 с

Ограничение памяти

1 ГБ

Пример 1

Ввод
11 5
111 522 RUN
112 524 SKI
113 531 RUN
114 533 RUN
115 536 SKI
116 539 RUN
117 542 SKI
118 548 RUN
119 554 SKI
120 561 RUN
121 565 SKI
511 587 SKI
512 594 SKI
513 802 SKI
514 865 SKI
515 899 SKI
Вывод
-4

Пример 2

Ввод
2 1
1 1 SKI
2 2 RUN
3 3 SKI
Вывод
2

Теги

Нужно войти, чтобы отправить решение.Войти