EduBrick

D. Минимальная куча ли это

2000 мс · 256 МБ · всё или ничего

Дан массив. Проверьте, образует ли он корректную минимальную кучу: родитель не больше своих детей.

Если да - выведите 0, иначе наименьший индекс ii, для которого A[i]A[i] меньше своего родителя.

Отличие от классной задачи ровно в одном знаке. Это стоит проделать: перепутанный знак - самая частая ошибка при переходе от max-кучи к min-куче, и обнаруживается она обычно уже внутри большого алгоритма, где искать её дорого.

В C++ min-куча из стандартной библиотеки получается так: std::priority_queue<int, std::vector<int>, std::greater<int>>. Обратите внимание, что компаратор greater даёт кучу минимумов - это тоже место, где путаются.

Формат ввода

В первой строке - число NN (1≤N≤1051 \le N \le 10^5).

Во второй - NN целых чисел, по модулю не превосходящих 10910^9.

Формат вывода

Одно число: 0, если массив является минимальной кучей, иначе наименьший нарушающий индекс.

Примеры

ввод
5
1 2 3 4 5
вывод
0
ввод
6
12 6 8 3 4 7
вывод
2
Войдите, чтобы отправлять решения.