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

Задача . C. Мультипредметная олимпиада


Мультипредметная олимпиада приближается! Соревнование проводится по \(m\) различным предметам, давая свободу выбора самим участникам. И теперь Александру (тренеру) необходимо собрать делегацию для поездки на олимпиаду среди своих воспитанников.

У Александра на выбор есть \(n\) кандидатов. Для \(i\)-го человека Алекс знает предмет \(s_i\) на котором данный кандидат специализируется и \(r_i\) — уровень его навыка в данной специализации (этот уровень даже может быть отрицательным!).

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

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

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

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

В первой строке заданы два целых числа \(n\) и \(m\) (\(1 \le n \le 10^5\), \(1 \le m \le 10^5\)) — количество кандидатов и количество предметов.

Следующие \(n\) строк содержат по два целых числа: \(s_i\) и \(r_i\) (\(1 \le s_i \le m\), \(-10^4 \le r_i \le 10^4\)) — предмет специализации и соответствующий уровень навыка \(i\)-го кандидата.

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

Выведите единственное число — максимальную возможную сумму навыков делегатов, которые образуют допустимую (по правилам олимпиады) делегацию, либо \(0\) если если любая допустимая делегация имеет отрицательную сумму.

Примечание

В первом примере выгодно выбрать кандидатов \(1\), \(2\), \(3\), \(4\), по двое во \(2\)-м и \(3\)-м предметах. Общая сумма равна \(6 + 6 + 5 + 5 = 22\).

Во втором примере выгодно выбрать кандидатов \(1\), \(2\) и \(5\). По одному делегату в каждом предмете и общая сумма равна \(6 + 6 + 11 = 23\).

В третьем примере невозможно получить неотрицательную сумму.


Примеры
Входные данныеВыходные данные
1 6 3
2 6
3 6
2 5
3 5
1 9
3 1
22
2 5 3
2 6
3 6
2 5
3 5
1 11
23
3 5 2
1 -1
1 -5
2 -1
2 -1
1 -10
0

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

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