Ctrl K

Заполнить пропуски для равных сумм

Средняя
Даны два массива неотрицательных целых чисел first и second. Каждый ноль в них — пропуск, который нужно заменить положительным целым числом (разные пропуски можно заполнять разными числами). Заполните все пропуски в обоих массивах так, чтобы суммы массивов совпали, и верните наименьшую возможную общую сумму. Если сделать суммы равными нельзя, верните -1.
Пример 1
first=[4, 0, 0], second=[1, 0, 7] → 9

Во втором массиве пропуск заменим на 1: сумма 9. В первом нужно набрать 5 двумя положительными числами, например 2 и 3. Меньше 9 не получится: второй массив меньше 9 дать не может.

Пример 2
first=[0, 5], second=[3, 3] → 6

Пропуск заменяем на 1, обе суммы равны 6.

Пример 3
first=[2, 2], second=[0, 1, 3] → -1

Сумма first всегда 4, а second никак не меньше 5. Ответ -1.

Ограничения
  • 1 ≤ len(first), len(second) ≤ 10⁵
  • 0 ≤ first[i], second[i] ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДве доски и вода СредняяМеньше всего прыжков до конца СредняяДобраться до последней клетки СредняяСколько угодно сделок СредняяОткуда начать круг Средняя
загружаем Python…
Вход
first=[4, 0, 0], second=[1, 0, 7]
Ожидается
9

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