# include <iostream>
# include <cstring>
using namespace std;
const int N=100010;
int n;
long long s[N];
long long l,r;
int x;
long long y;
int main(){
cin>>n;
while(n--){
cin>>x>>y;
memset(s,0,sizeof(s));
long long ss=9999999;
for(int i=1;i<=x;i++)
cin>>s[i];
for(int i=1;i<=x;i++)
s[i]+=s[i-1];
l=1;
int s1=ss;
for(r=l;r<=x;){
if(s[r]-s[l-1]>=y) {
ss=min(r-l+1,ss);
l++;
}
else r++;
}
if(s1==ss) cout<<0<<endl;
else
cout<<ss<<endl;
}
return 0;
}
总结:
忘记考虑一种情况了,如果是没有找到大于等于s的怎么办呢?
当时一直卡在这里,结果每次错了都爆零,主要是没有考虑完全,虽然题目没有说如果没有大于等于s的,以后遇见判断if的情况需要想一下如果一次if都没有进去怎么办。。。

京公网安备 11010502036488号