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

Задача . E. Боксёры


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

Необходимо выбрать наибольшую по количеству человек такую команду боксёров, что все веса боксёров в ней — различны.

Напишите программу, которая для заданных текущих значений \(a_i\) найдет максимальное возможное количество боксёров в команде.

Возможно, что после какого-то изменения вес какого-то боксера станет \(150001\) (но не больше).

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

В первой строке задано единственное целое число \(n\) (\(1 \le n \le 150000\)) — количество боксёров. В следующей строке через единичный пробел заданы \(n\) целых чисел \(a_1, a_2, \dots, a_n\), где \(a_i\) (\(1 \le a_i \le 150000\)) — вес \(i\)-го боксёра.

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

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

Примечание

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

Во втором примере можно одного боксёра веса \(1\) увеличить на единицу (получить вес \(2\)), одного боксёра веса \(4\) уменьшить на единицу, а другого — увеличить на единицу (получив боксёров с весами \(3\) и \(5\) соответственно). Таким образом, можно получить команду, состоящую из боксёров с весами \(5, 4, 3, 2, 1\).


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

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

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