Рядок лимонаду
У спекотний літній день на фермі Фермер Джон розвозить лимонад своїм n коровам. Кожна з цих n корів (пронумерованих від 1 до n) обожнює лимонад, але деякі з них готові чекати довше, ніж інші. Зокрема, корова i не буде чекати більше ніж w[i]
корів перед собою, щоб отримати лимонад. Зараз усі n корів знаходяться на полях, але незабаром Фермер Джон подзвонить у дзвін, і корови побіжать до нього. Всі вони прибудуть до того, як він почне роздавати лимонад, причому жодні дві корови не прибудуть одночасно. Більше того, корова i стане в чергу лише тоді, коли в черзі буде не більше w[i]
корів.
Фермер Джон хоче заздалегідь підготувати певну кількість лимонаду, але не хоче бути марнотратним. Кількість корів, які стануть у чергу, залежить від порядку їх прибуття. Допоможіть йому визначити мінімальну кількість корів, які можуть стати в чергу.
Вхідні дані
Перший рядок містить число n (1 ≤ n ≤ 10^5
), другий рядок містить n цілих чисел w[1]
, w[2]
, ..., w[n]
. Гарантується, що 0 ≤ w[i]
≤ 10^9
для кожної корови i.
Вихідні дані
Виведіть мінімальну кількість корів, які можуть стати в чергу, серед усіх можливих порядків прибуття корів.
Приклад
У цьому випадку лише 3 корови можуть стати в чергу (це мінімально можливе число). Нехай спочатку прибудуть корови з w = 7 та w = 400 і стануть у чергу. Потім прибуде корова з w = 1 і піде, оскільки в черзі вже стоять дві корови. Далі прибудуть дві корови з w = 2, одна з яких стане в чергу, а інша піде.