ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

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


G. Обмены в Heapify

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

Старт: 30.окт.2020 в 08:00:00
Финиш: 13.ноя.2021 в 08:00:00
Турнир завершён!
• Турнирная таблица

Задачи турнира

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

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/2000/2000/2000 мс. Лимит памяти 65536/65536/65536/65536 Кб.

Обмены в 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