Подотрезки с суммой S

Просмотр в формате PDF

Submit solution


Очки: 160
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Problem type
Allowed languages
C++, Python

Ревизор анализирует финансовый отчёт компании за n последовательных дней. Для каждого дня известна прибыль a_i — она может быть как положительной, так и отрицательной.

Ревизору нужно посчитать, сколько существует непрерывных периодов времени, у которых суммарная прибыль ровно равна S.

Иными словами, требуется найти количество пар индексов l и r таких, что 1 <= l <= r <= n и сумма a_l + a_{l+1} + ... + a_r равна S.

Входные данные

Первая строка содержит два целых числа: n и S — количество дней и требуемую суммарную прибыль.

Вторая строка содержит n целых чисел a_i — прибыль по дням.

Выходные данные

Выведите одно число — количество непрерывных периодов, суммарная прибыль на которых равна S.

Ответ может не помещаться в 32-битный целочисленный тип.

Ограничения

  • 1 <= n <= 2 * 10^5
  • -10^18 <= S <= 10^18
  • |a_i| <= 10^9

Примеры

Пример 1

Входные данные

1 5
5

Выходные данные

1
Пример 2

Входные данные

5 0
1 -1 1 -1 0

Выходные данные

7

Комментарии

Еще нет ни одного комментария.