【题目大意】
给定长度微n的数列整数及整数s。求出总和不小于s的连续子序列的长度的最小值。如果节不存在,则输出0。
思路:sum<s,r右移;sum>s,l右移
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<set>
#include<map>
typedef long long LL;
int a[100005];
using namespace std;
int main()
{
int t,n,m,i;
cin>>t;
while(t--)
{
scanf("%d%d",&n,&m);
for(i=1; i<=n; i++)
scanf("%d",&a[i]);
int l=1,r=1,ans=1e9,sum=0;
while(1)
{
while(r<=n&&sum<=m) sum+=a[r++];
if(sum<m) break;
ans=min(ans,r-l);
sum-=a[l++];
}
if(ans==1e9) ans=0;
printf("%d\n",ans);
}
return 0;
}