PKU3061 (蟻本ver)
#include<iostream> using namespace std; int n,S; #define MAX_N 10000 int a[MAX_N]; int main(){ cin >> n >> S; for(int i = 0; i < n;i++){ cin >> a[i]; } int res = n + 1; int s = 0, t = 0, sum = 0; while(true){ while(t < n && sum < S){ sum += a[t++]; } if(sum < S) break; res = min(res, t - s); sum -= a[s++]; } if(res > n){ res = 0; } cout << res << endl; return 0; }