Нашли ошибку?

Насколько расходятся рейтинги

СложнаяРеализацияГлава 4

#разделяй и властвуй#сортировка слиянием#O(n log n)id: ga-count-inversions

Два критика оценили одни и те же фильмы. Расставим фильмы в порядке первого критика и запишем, какое место каждому дал второй: получится список ranks. Мера несогласия — число пар i < j, у которых ranks[i] > ranks[j] (инверсий). Напишите count_inversions(ranks) за O(n log n) по стратегии «разделяй и властвуй».

Примеры

count_inversions([1, 2, 3, 4])     # 0 — полное согласие
count_inversions([2, 4, 1, 3, 5])  # 3 — пары (2,1), (4,1), (4,3)
count_inversions([3, 2, 1])        # 3

Ограничения

Решение

def count_inversions(ranks: list[int]) -> int:
    """Число пар i < j, у которых ranks[i] > ranks[j]."""
    # ваш код
    raise NotImplementedError

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 count_inversions.py — тесты те же, результат покажет ✓ / ✗ и итог.