#include<cstdio>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<cstring>
#include<map>
#include<vector>
#include<set>
#include<stack>
using namespace std;
int main()
{
long long n,s,a[111111],t;
cin>>t;
while(t--)
{
cin>>n>>s;
long long sum=0;
for(long long i=0;i<n;i++)
{
cin>>a[i];
sum+=a[i];
}
if(sum<s)
cout<<"0"<<endl;
else
{
long long l=0,ll=0,len=n,sum=0;
while(1)//尺取法
{
while(l<n&&sum<s)
{
sum+=a[l++];
}
if(sum<s)//这个位置不能和下面的调换
break;
len=min(len,l-ll);
sum-=a[ll++];
}
cout<<len<<endl;
}
}
return 0;
}
A - Subsequence(尺取法)
最新推荐文章于 2024-06-26 21:58:34 发布