Курс 3.8 — Алгоритмы · Раздел 05 · Урок 5.5

ИИ-роботы в шеренге

Выполним задание о перестановке роботов и подсчёте обменов.

Выполним задание о перестановке роботов и подсчёте обменов.
5.5 — ИИ-роботы в шеренге

Материал урока

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

ИИ «Робик» решил навести порядок:

  • Если какой-то робот ниже своего соседа слева, они меняются местами.
  • Это продолжается, пока роботы не выстроятся от самого высокого к самому низкому.

Каждый раз, когда роботы менялись местами, ИИ считал это обменом.

Помогите «Робику» подсчитать, сколько обменов потребуется, чтобы роботы полностью выстроились по росту.

Формат ввода

  • Первая строка: N число (1 ≤ N ≤ 10^4) — количество роботов.
  • Вторая строка: N чисел a_i (1 ≤ a_i ≤ 10^6) — рост роботов.

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

Одно число — количество обменов.

Пример

Ввод:

5
150 180 170 160 190

Ход работы (сортировка по убыванию):

  • 150 и 180 → меняем → [180, 150, 170, 160, 190] (1 обмен)
  • 150 и 170 → меняем → [180, 170, 150, 160, 190] (2 обмена)
  • 150 и 160 → меняем → [180, 170, 160, 150, 190] (3 обмена)
  • 150 и 190 → меняем → [180, 170, 160, 190, 150] (4 обмена)
  • … и так до полного порядка.

Общее количество обменов = 7.

Вывод:

7