Ctrl K

Гонка за монетами на двух дорожках

Средняя
Поле — две дорожки по n клеток: lanes[r][c] — число монет в клетке дорожки r и столбца c. Двигаться можно только вправо по своей дорожке или вниз — с верхней дорожки на нижнюю в том же столбце. Каждый бегун стартует в левой клетке верхней дорожки (0, 0) и финиширует в правой клетке нижней (1, n - 1). Сначала бежит первый бегун и собирает все монеты на своём пути — эти клетки становятся пустыми. Затем бежит второй и собирает то, что осталось на его пути; пути могут пересекаться. Первый бегун выбирает путь так, чтобы второму досталось как можно меньше, а второй — так, чтобы собрать как можно больше. Верните, сколько монет соберёт второй бегун при лучшей игре обоих.
Пример 1
lanes=[[4, 1, 7], [2, 6, 3]] → 7

Если первый бегун перейдёт на нижнюю дорожку в столбце 1, после него останутся 7 монет сверху справа и 2 снизу слева — второй соберёт 7. В столбцах 0 и 2 второму досталось бы 8.

Пример 2
lanes=[[9], [9]] → 0

Первый бегун проходит обе клетки и забирает всё — второму ничего не остаётся.

Ограничения
  • len(lanes) == 2
  • 1 ≤ n ≤ 5 · 10⁴, обе дорожки длины n
  • 1 ≤ lanes[r][c] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый большой лёгкий квадрат СредняяСуммы по окрестностям в таблице СредняяK-й по величине XOR угла СредняяТри самых тяжёлых ромба СредняяСбалансированный квадрат Средняя
загружаем Python…
Вход
lanes=[[4, 1, 7], [2, 6, 3]]
Ожидается
7

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