Задачи и сроки

Предположим, у вас есть n задач, для каждой из которых задан дедлайн и прибыль, которая выплачивается, если вы успеваете выполнить задачу до окончания дедлайна. Нужно определить, какую максимальную суммарную прибыль можно получить. На выполнение каждой задачи уходит 1 день. Если задача не закончена к моменту дедлайна, прибыль за неё не начисляется.
Вы начинаете работу с 1-го дня. Сколько всего вы можете заработать?

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

В первой строке входных данных содержится одно целое число n (1 ≤ n ≤ ) — общее количество задач.
В следующих n строках записаны пары целых чисел (1 ≤ , ), где — дедлайн задачи, а — прибыль за её своевременное выполнение.

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

Программа должна вывести максимально возможную суммарную прибыль.

Примеры

Входные данные
Выходные данные
4 4 10 1 3 2 7 2 3
20
5 1 1 4 100 4 200 4 300 4 200
800

Пояснение

  1. 10 + 3 + 7
    1. Сначала выполняем задачу с дедлайном 1 ⇒ получаем 3
    2. Затем выполняем задачу с дедлайном 2 ⇒ получаем 7
    3. Наконец выполняем задачу с дедлайном 4 ⇒ получаем 10
  1. 100 + 200 + 300 + 200 (выполняем только задачи с дедлайном 4)
    1. Сначала выполняем задачу с прибылью 100
    2. Затем задачу с прибылью 200
    3. После этого задачу с прибылью 300
    4. И в конце задачу с прибылью 200
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue