맛있는 떡꼬치 만들기
문제
찬우는 떡볶이 떡 N개가 일렬로 늘어서 있는 판을 보며 떡꼬치를 만드려고 합니다. 늘어선 떡들은 왼쪽부터 순서대로 1번부터 N번까지 번호가 매겨져 있으며, 각 떡은 저마다의 크기(점수) a_i를 가지고 있습니다.
찬우는 연속된 구간의 떡들을 순서대로 꼬치에 꽂아 정확히 크기의 합이 X가 되는 떡꼬치를 만들고 싶어 합니다. 예를 들어, 떡들의 크기가 순서대로 [3, 2, 2, 1, 5]로 주어지고 목표 합 X = 5라면,
다음과 같이 총 3가지 방법으로 연속된 구간을 골라 떡꼬치를 만들 수 있습니다.
- 1번째 떡과 2번째 떡을 선택:
3 + 2 = 5 - 2번째, 3번째, 4번째 떡을 선택:
2 + 2 + 1 = 5 - 5번째 떡을 선택:
5
일렬로 나열된 떡들의 크기 정보와 찬우가 원하는 목표 합 X가 주어질 때, 합이 정확히 X가 되는 연속된 떡 구간(부분 수열)의 총개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 떡의 개수 N과 목표 합 X가 공백을 사이에 두고 주어진다.
둘째 줄에는 1번 떡부터 N번 떡까지의 크기를 나타내는 N개의 자연수 a_i가 공백을 사이에 두고 주어진다.
출력
첫째 줄에 크기의 합이 정확히 X가 되는 연속된 구간의 개수를 출력한다.
제한 사항
- 1 ≤ N ≤ 200,000
- 1 ≤ X ≤ 1,000,000,000
- 1 ≤ a_i ≤ 1,000,000,000
예제 입력 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
코멘트