Ctrl K

Последняя пара — чемпионы

Средняя
Даны два массива одной длины n: top и bottom. Элементы с одинаковым индексом образуют пару, и за одну операцию можно выбрать индекс i и поменять местами top[i] и bottom[i]. Нужно, чтобы последний элемент каждого массива был его максимумом: top[n - 1] не меньше любого элемента top, а bottom[n - 1] не меньше любого элемента bottom. Верните наименьшее число обменов, при котором выполняются оба условия, или -1, если это невозможно.
Пример 1
top=[2, 8, 3], bottom=[6, 1, 9] → 1

Меняем местами пару с индексом 1: top = [2, 1, 3], bottom = [6, 8, 9]. Теперь 3 — максимум top, а 9 — максимум bottom.

Пример 2
top=[4, 1], bottom=[1, 4] → 1

Достаточно одного обмена: либо первой пары, либо последней.

Пример 3
top=[5, 2], bottom=[6, 3] → -1

Пара (5, 6) больше обоих чисел последней пары при любой расстановке, так что условие не выполнить.

Ограничения
  • 1 ≤ n ≤ 1000
  • len(top) == len(bottom) == n
  • 1 ≤ top[i], bottom[i] ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПростые числа до границы СредняяСамый длинный хребет на маршруте СредняяСамое позднее время из цифр СредняяМесто с лучшим сигналом СредняяХод с захватом линии Средняя
загружаем Python…
Вход
top=[2, 8, 3], bottom=[6, 1, 9]
Ожидается
1

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 131 тест на сервере, включая скрытые.