# 제 1. 합이 S인 연속 구간 개수
# 문제 설명
# 길이 N인 양의 정수 배열이 주어진다.
# 연속한 부분 배열의 합이 정확히 S가 되는 경우의 개수를 구하시오.
# 입력
# N S
# a1 a2 a3 ... aN
# 출력
# 조건을 만족하는 구간의 개수
# 입력
# 5 5
# 1 2 3 2 1
N, S = map(int, input().split())
arr = list(map(int, input().split()))
N, S = map(int, input().split())
arr = list(map(int, input().split()))
left = 0
current_sum = 0
count = 0
for right in range(N):
current_sum += arr[right]
while current_sum > S:
current_sum -= arr[left]
left += 1
if current_sum == S:
count += 1
print(count)
# 출력
# 2
# 설명
# [2,3]
# [3,2]
# 🟡 문제 2. 서로 다른 두 수의 합
# (정렬 + 투포인터)
# 문제 설명
# N개의 서로 다른 정수가 주어진다.
# 이 중 서로 다른 두 수를 골라 합이 X가 되는 쌍의 개수를 구하시오.
# 입력
# N X
# a1 a2 a3 ... aN
# 출력
# 쌍의 개수
# 예시
# 입력
# 6 7
# 1 2 3 4 5 6
# 출력
# 3
# 설명
# (1,6)
# (2,5)
# (3,4)
# 입력
N, X = map(int, input().split())
arr = list(map(int, input().split()))
# 정렬
arr.sort()
left = 0
right = N - 1
count = 0
while left < right:
s = arr[left] + arr[right]
if s == X:
count += 1
left += 1
right -= 1
elif s < X:
left += 1
else:
right -= 1
print(count)
# 🔵 문제 3. 길이가 최소인 구간 찾기
# 문제 설명
# 길이 N인 양의 정수 배열이 주어진다.
# 연속한 부분 배열 중 합이 S 이상이 되는 구간 중 가장 짧은 길이를 구하시오.
# 없다면 0을 출력한다.
# 입력
# N S
# a1 a2 a3 ... aN
# 출력
# 최소 길이
# 예시
# 입력
# 7 10
# 2 3 1 2 4 3 1
# 출력
# 3
To embed this project on your website, copy the following code and paste it into your website's HTML: