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

Задача . Lemonade Line


Задача

Темы:
Сегодня на ферме жаркий летний день и Фермер Джон развозит лимонад своим \(N\) коровам. Все \(N\) коров (последовательно пронумерованных \(1 \dots N\)) любят лимонад, но некоторые из них любят больше чем другие. В частности, корова \(i\) готова подождать не более \(w_i\) коров прежде чем получит свой лимонад. Прямо сейчас все \(N\) коров на полях, но вскоре ФД позвонит в колокол и коровы побегут к нему. Все прибудут до того, как он начнёт раздавать лимонад, но никакие две коровы не прибудут в одно и то же время. Более того, когда корова \(i\) прибывает, она становится в очередь если и только если в очереди находится не более \(w_i\) коров.

ФД хочет подготовить заранее некоторое количество лимонада, но он не хочет быть нерасчётливым. Количество коров, которые станут в очередь зависит от порядка, в котором они прибывают. Помогите ему определить минимальное количество коров, которые станут в очередь.

ФОРМАТ ВВОДА (файл lemonade.in):

Первая строка ввода содержит \(N\), вторая строка содержит \(N\) разделённых пробелом целых чисел \(w_1, w_2, \dots, w_N\). Гарантируется, что \(1 \leq N \leq 10^5\), и \(0 \leq w_i \leq 10^9\) для каждой коровы \(i\).

ФОРМАТ ВЫВОДА (файл lemonade.out):

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


Примеры
Входные данныеВыходные данные
1 5
7 1 400 2 2
3

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

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