Ctrl K

Переносы по двойке

Сложная
Даны два массива положительных целых чисел одинаковой длины: values и goal. За одну операцию можно выбрать два **разных** индекса i и j, увеличить values[i] на 2 и уменьшить values[j] на 2. Цель — чтобы values и goal совпадали как наборы: каждое число встречается в обоих массивах одинаковое число раз, а порядок не важен. Верните наименьшее число операций. Гарантируется, что цели можно достичь.
Пример 1
values=[7, 4, 10], goal=[8, 5, 8] → 2

Переносим 2 с элемента 0 на элемент 1: [5, 6, 10], затем с элемента 2 на элемент 1: [5, 8, 8] — это тот же набор, что и goal.

Пример 2
values=[6, 3, 1], goal=[1, 3, 6] → 0

Порядок не важен: наборы чисел уже совпадают.

Ограничения
  • 1 ≤ len(values) = len(goal) ≤ 10⁵
  • 1 ≤ values[i], goal[i] ≤ 10⁶
  • Из values можно получить набор goal
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНаращиваем капитал проектами СложнаяРазличимые сокращения слов СложнаяБольше заказов к сроку СложнаяСамый узкий отрезок для всех списков СложнаяПо две отметки на отрезок Сложная
загружаем Python…
Вход
values=[7, 4, 10], goal=[8, 5, 8]
Ожидается
2

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