맛있는 떡꼬치 만들기2


답안 제출

Points: 13
시간 제한: 2.0s
메모리 제한: 256M

문제 유형
허용된 언어
C, C++, Python

문제

찬우는 떡볶이 떡 N개가 일렬로 늘어서 있는 판을 보며 떡꼬치를 만드려고 합니다. 늘어선 떡들은 왼쪽부터 순서대로 1번부터 N번까지 번호가 매겨져 있으며, 각 떡은 저마다의 크기(점수) a_i를 가지고 있습니다.

찬우는 연속된 구간의 떡들을 순서대로 꼬치에 꽂아 정확히 크기의 합이 X가 되는 떡꼬치를 만들고 싶어 합니다. 예를 들어, 떡들의 크기가 순서대로 [3, 2, 2, 1, 5]로 주어지고 목표 합 X = 5라면,

다음과 같이 총 3가지 방법으로 연속된 구간을 골라 떡꼬치를 만들 수 있습니다.

  1. 1번째 떡과 2번째 떡을 선택: 3 + 2 = 5
  2. 2번째, 3번째, 4번째 떡을 선택: 2 + 2 + 1 = 5
  3. 5번째 떡을 선택: 5

일렬로 나열된 떡들의 크기 정보와 찬우가 원하는 목표 합 X가 주어질 때, 합이 정확히 X가 되는 연속된 떡 구간(부분 수열)의 총개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 떡의 개수 N과 목표 합 X가 공백을 사이에 두고 주어진다.

둘째 줄에는 1번 떡부터 N번 떡까지의 크기를 나타내는 N개의 자연수 a_i가 공백을 사이에 두고 주어진다.

출력

첫째 줄에 크기의 합이 정확히 X가 되는 연속된 구간의 개수를 출력한다.

제한 사항

  • 1 ≤ N ≤ 200,000
  • -1,000,000,000 ≤ X ≤ 1,000,000,000
  • -1,000,000 ≤ a_i ≤ 1,000,000 (원소에 음수와 0이 포함될 수 있음)

예제 입력 1

6 8
3 4 1 3 5 2

예제 출력 1

3

예제 설명 1

목표 합이 8이 되는 연속된 구간은 다음과 같이 3가지가 존재합니다.

  • 1번째부터 3번째 떡까지: 3 + 4 + 1 = 8
  • 2번째부터 4번째 떡까지: 4 + 1 + 3 = 8
  • 4번째부터 5번째 떡까지: 3 + 5 = 8

코멘트

현재 작성된 코멘트가 없습니다.