Для заданной последовательности попарно различных неотрицательных целых чисел $$$(b_1, b_2, \dots, b_k)$$$ мы определяем, является ли она хорошей следующим образом:
Возможно, что для некоторых чисел $$$b_i$$$ и $$$b_j$$$ вы попробуете добавить ребро между ними дважды. Тем не менее вы добавите это ребро только один раз.
Ниже приведен пример (рисунок, соответствующий первому примеру).
Последовательность $$$(0, 1, 5, 2, 6)$$$ не хорошая, так как мы не можем достичь $$$1$$$ из $$$5$$$.
Однако, последовательность $$$(0, 1, 5, 2)$$$ является хорошей.
Вам дана последовательность $$$(a_1, a_2, \dots, a_n)$$$ из попарно различных неотрицательных целых чисел. Вы хотите удалить из нее некоторые элементы (возможно, ни одного), чтобы сделать оставшуюся последовательность хорошей. Какое минимально возможное количество удалений необходимо для достижения этой цели?
Можно показать, что для любой последовательности можно удалить некоторое количество элементов, оставив как минимум $$$2$$$, так, что оставшаяся последовательность будет хорошей.
Первая строка содержит единственное целое число $$$n$$$ ($$$2 \le n \le 200,000$$$) — длину последовательности.
Во второй строке находится $$$n$$$ попарно различных неотрицательных целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \le a_i \le 10^9$$$) — элементы последовательности.
Необходимо вывести ровно одно целое число — минимально возможное количество элементов, которые нужно удалить, чтобы сделать оставшуюся последовательность хорошей.
5 0 1 5 2 6
1
7 6 9 8 7 3 5 2
2
Обратите внимание, что числа, которые вы удаляете, не влияют на процедуру проверки, является ли хорошей оставшаяся последовательность.
Возможно, что для некоторых чисел $$$b_i$$$ и $$$b_j$$$ вы попробуете добавить ребро между ними дважды. Тем не менее вы добавите это ребро только один раз.
Название |
---|