Ctrl K

Ничья красных и синих карточек

Сложная
В ряд выложены n карточек. У карточки i две стороны: на красной написано число red[i], на синей — blue[i]. Возьмём отрезок подряд идущих карточек с номерами от l до r и перевернём каждую из них красной или синей стороной вверх. Такой выбор называется **ничьей**, если сумма чисел на красных сторонах равна сумме чисел на синих (если карточек какого-то цвета нет, их сумма равна 0). Посчитайте, сколько всего существует ничьих. Два варианта различаются, если у них разные границы l или r или хотя бы одна карточка лежит другой стороной вверх. Ответ может быть большим — верните его по модулю 10⁹ + 7.
Пример 1
red=[3, 1, 4], blue=[2, 4, 1] → 2

Подходит только отрезок из карточек 1 и 2, причём двумя способами: карточка 1 красной стороной, 2 — синей (1 = 1), или наоборот (4 = 4).

Пример 2
red=[0, 2], blue=[2, 0] → 4

Карточка 0 красной стороной даёт ничью 0 = 0, карточка 1 синей стороной — тоже. Для отрезка из обеих карточек годятся «красная, синяя» (0 = 0) и «синяя, красная» (2 = 2). Всего 4.

Пример 3
red=[5, 1, 2], blue=[3, 3, 4] → 1
Ограничения
  • 1 ≤ n ≤ 100
  • len(red) = len(blue) = n
  • 0 ≤ red[i], blue[i] ≤ 100
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВода между стенами СложнаяСамый большой горящий блок СложнаяПрибыль за две сделки СложнаяВсе способы расставить пробелы СложнаяПереход через пещеру Сложная
загружаем Python…
Вход
red=[3, 1, 4], blue=[2, 4, 1]
Ожидается
2

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