题目链接
就是个尺取。
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 1e5 + 1000;
int n,m;
int a[N];
int sum;
int main() {
int T;
cin>>T;
while(T--){
scanf("%d%d",&n,&m);
int t;
for (int i = 1; i <= n; i++)
scanf("%d",&a[i]);
int ans = n+2;
sum = 0;
int l = 0,r = 0;
while(r <= n){
if (sum >= m){
ans = min(ans,r-l);
l++;
sum = sum - a[l];
}
if (sum < m || l == r) {
r++;
sum += a[r];
}
}
if (ans == n+2) printf("0\n"); else printf("%d\n",ans);
}
return 0;
}