first, second, third и fourth одинаковой длины n. Из каждого списка выбирается по одному элементу — получается четвёрка индексов (i, j, k, l).
Посчитайте, сколько существует четвёрок, для которых first[i] + second[j] + third[k] + fourth[l] == 0. Четвёрки различаются индексами, а не значениями: если в списке есть повторы, каждая позиция считается отдельно.
Полный перебор работает за O(n⁴) — постарайтесь уложиться в O(n²).first=[3, -1], second=[0, 2], third=[-2, 1], fourth=[-1, -3] → 2
Подходят ровно две четвёрки индексов: (0, 0, 0, 0) даёт 3 + 0 + (-2) + (-1) = 0, а (0, 1, 0, 1) даёт 3 + 2 + (-2) + (-3) = 0. Остальные 14 сочетаний в ноль не складываются.
first=[1, 1], second=[-1, -1], third=[0, 0], fourth=[0, 0] → 16
Любой выбор даёт 1 - 1 + 0 + 0 = 0, поэтому подходят все 2 · 2 · 2 · 2 = 16 четвёрок. Одинаковые значения на разных позициях считаются разными вариантами.
first=[4], second=[-1], third=[2], fourth=[6] → 0
Единственная четвёрка даёт 4 - 1 + 2 + 6 = 11, а не 0.
nfirst=[3, -1], second=[0, 2], third=[-2, 1], fourth=[-1, -3]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 99 тестов на сервере, включая скрытые.