Сегодня мы будем решать Smartphone Codechef, который является частью Серии обучения DSA.



Проблема

Зональная компьютерная олимпиада 2014, 30 ноября 2013 г.

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

Вы хотите зафиксировать цену, чтобы доход, который вы получаете от приложения, был максимальным. Найдите этот максимально возможный доход.

Например, предположим, что у вас есть 4 потенциальных клиента и их бюджеты 30, 20, 53 и 14. В этом случае максимальный доход, который вы можете получить, равен 60 .

Вход

Строка 1: N, общее количество потенциальных клиентов.

Строки со 2 по N+1: В каждой строке указан бюджет потенциального клиента.

Выход

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

Пример ввода 1

4
30
20
53
14

Пример вывода 1

60

Пример ввода 2

5
40
3
65
33
21

Пример вывода 2

99

Объяснение

Тестовые данные

Бюджет каждого клиента составляет от 1 до 108 включительно.

Подзадача 1 (30 баллов): 1 ≤ N ≤ 5000.

Подзадача 2 (70 баллов): 1 ≤ N ≤ 5×105.

Данные оценки в реальном времени

Во время экзамена на сервере имеется 15 тестовых входов. Группировка по подзадачам выглядит следующим образом.

Подзадача 1: проверка входных данных 0,…,5.

Подзадача 2: проверка входных данных 6,…,14.

Примечание

Ответ может не поместиться в переменной типа int. Мы рекомендуем использовать переменные типа long long для чтения ввода и вычисления ответа. Если вы используете printf и scanf, вы можете использовать %lld для long long.

Решение CodeChef для смартфонов