HomeVolumesContestsSectionsForumsUsersPrintHelpAbout

Contests > Алгоритмы и структуры данных — 2020. Набор задач 5 > problem:


G. Обмены в Heapify

Алгоритмы и структуры данных — 2020. Набор задач 5

Start: Oct.30.2020 at 08:00:00 AM
Finish: Nov.13.2021 at 08:00:00 AM
The contest is finished!
• Contest scoreboard

Contest problems

• Подсказки к задачам
• A. Скобочная последовательность
• B. Постфиксное выражение
• C. Ближайший больший справа
• D. Ломбард
• E. Очередь
• F. Минимум в скользящем окне
• G. Обмены в Heapify
• H. Порядковая статистика — 2

Feedback

If you notice incorrect translations in Contester, please let author know.

Time limit 2000/2000/2000/2000 ms. Memory limit 65536/65536/65536/65536 Kb.

Обмены в Heapify
Обмены в Heapify
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
64 мегабайта
ввод
стандартный ввод
вывод
стандартный вывод

Процедура heapify преобразует неупорядоченный массив в двоичную кучу, на вершине которой располагается максимальный элемент:

void heapify(int a[], int size) {

    for (int i = size - 1; i >= 0; i--)

        down(i);

}

Определите, сколько раз будет произведён обмен местами двух элементов массива при выполнении процедуры heapify.

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

Первая строка содержит целое число N (1 ≤ N ≤ 104) — количество элементов массива.

Вторая строка содержит N целых чисел Ai ( - 231 ≤ Ai < 231) — элементы массива.

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

Выведите одно целое число — количество обменов при вызове процедуры heapify для рассматриваемого массива.

Примеры

Входные данные
5
1 2 3 4 5
Выходные данные
3
Входные данные
5
5 4 3 2 1
Выходные данные
0
Входные данные
5
5 3 1 2 4
Выходные данные
1
Для отправки решений необходимо выполнить вход.

www.contester.ru