Домашки с дедлайнами

тема: Обмен и назначение · уровень: продвинутый

Условие

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

За работу i дают p_i баллов, но только если закончить её не позже дня d_i (то есть выбрать для неё день t, где 1 ≤ t ≤ d_i). В один день можно сделать не больше одной работы. Некоторые работы можно не делать.

Найди максимальную сумму баллов, которую можно набрать.

Важно: сумма баллов может не помещаться в 32-битный тип (как на олимпиадах). В Python это не проблема, но в других языках нужен 64-битный тип.

Формат ввода

Первая строка: целое число n — количество работ.

Далее идут n строк, в каждой два целых числа p_i и d_i — баллы за работу и последний день, когда её ещё можно сдать.

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

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

Ограничения

Пример

Ввод:

5
10 1
20 1
30 2
25 2
100 3

Вывод:

155

Решить задачу с автопроверкой на Python →

Куда дальше