Количество подотрезков с заданной суммой

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

Submit solution


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

Автор:
Problem type
Allowed languages
C++, Python

Аналитик изучает последовательность из n целых чисел a_1, a_2, ..., a_n. Он хочет определить, сколько непрерывных участков этой последовательности имеют суммарное значение ровно S.

Иными словами, требуется посчитать количество пар индексов (l, r), где 1 <= l <= r <= n, таких что сумма элементов на подотрезке от l до r равна S, то есть:

a_l + a_{l+1} + ... + a_r = S

Необходимо вывести количество таких подотрезков.

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

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

Во второй строке даны n целых чисел a_i — элементы массива.

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

Выведите одно целое число — количество подотрезков массива, сумма элементов которых равна S.

Ограничения

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

Примеры

Пример 1

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

1 0
0

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

1
Пример 2

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

2 3
1 2

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

1

Комментарии

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