투 포인터로 s 이상인 경우 찾고 가장 짧은 길이 갱신
s 이상인 경우 없으면 0으로 출력하기
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
st=new StringTokenizer(br.readLine());
int n=Integer.parseInt(st.nextToken());
int s=Integer.parseInt(st.nextToken());
int[] nums=new int[n+1];
st=new StringTokenizer(br.readLine());
for(int i=1;i<=n;i++)nums[i]=Integer.parseInt(st.nextToken());
int l=0,r=1;
long sum=nums[1];
int cnt=1;
int ans=Integer.MAX_VALUE;
boolean suc=false;
while(l<=r){
if(r==n+1)break;
if(sum<s){
r++;
if(r!=n+1)sum+=nums[r];
cnt++;
}
//sum>=s
else{
if(cnt<ans){
ans=cnt;
suc=true;
}
if(l!=0)cnt--;
sum-=nums[l++];
}
}
if(suc)System.out.println(ans);
else System.out.println(0);
}
}
#투포인터