http://poj.org/problem?id=3061
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<queue>
#define N 1000005
using namespace std;
int a[N];
int main()
{
int T, n, s, res, sum, S, t;
scanf("%d", &T);
while (T--)
{
scanf("%d%d", &n, &S);
for (int i = 0; i < n; i++) scanf("%d", &a[i]);
res = n + 1;
s = 0; t = 0; sum = 0;
for (;;)
{
while (t < n && sum < S)
sum += a[t++];
if (sum < S) break;
res = min(res, t - s);
sum -= a[s++];
}
if (res > n) printf("0\n");
else printf("%d\n", res);
}
return 0;
}