시간복잡도 문제 때문에 투 포인터 알고리즘과 누적 합 알고리즘을 같이 사용했다.
N, M = map(int, input().split())
numbers = list(map(int, input().split()))
answer = 0
prefix_sum = [0] * (N+1)
for i in range(1, N+1):
prefix_sum[i] = prefix_sum[i-1] + numbers[i-1]
start = 1
end = 1
while end <= N:
part_sum = prefix_sum[end] - prefix_sum[start-1]
if part_sum < M:
end += 1
elif part_sum > M:
# 단일 요소가 M보다 클 경우 두 개의 포인터를 같이 이동시켜줘야 함
if start == end:
end += 1
start += 1
else:
answer += 1
end += 1
print(answer)