changes — изменения баланса счёта по дням: положительное число — пополнение, отрицательное — списание. Аналитику интересны периоды из нескольких дней подряд, за которые баланс в итоге вырос ровно на total (при отрицательном total — уменьшился).
Посчитайте, сколько существует непустых отрезков из подряд идущих элементов changes, сумма которых равна total. Два отрезка считаются разными, если у них отличается начало или конец.changes=[3, -1, 4, 0, 2], total=6 → 3
Сумму 6 дают три отрезка: [3, -1, 4], [3, -1, 4, 0] и [4, 0, 2]. Отрезки с одинаковыми значениями, но разными границами считаются разными.
changes=[0, 0, 0], total=0 → 6
Любой отрезок из нулей даёт сумму 0: три отрезка длины 1, два длины 2 и один длины 3 — всего 6.
changes=[5, -5, 5], total=5 → 3
Подходят [5] в начале, [5] в конце и весь массив [5, -5, 5]. Отрезки [5, -5] и [-5, 5] дают 0.
changes.length ≤ 2 · 10⁴changes[i] ≤ 1000total ≤ 10⁷changes=[3, -1, 4, 0, 2], total=6
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 103 теста на сервере, включая скрытые.