Ranking (as of 2015-08-24): 14 out of 658
Language: C++
/*
UVa 1121 - Subsequence
To build using Visual Studio 2012:
cl -EHsc -O2 UVa_1121_Subsequence.cpp
*/
#include <algorithm>
#include <cstdio>
using namespace std;
const int n_max = 100000;
int integers[n_max];
int main()
{
int N, S;
while (scanf("%d %d", &N, &S) != EOF) {
int s = 0, min_length = N + 1;
for (int i = 0, pi = 0; i < N; i++) {
scanf("%d", &integers[i]);
if ((s += integers[i]) >= S) {
for ( ; pi < i; pi++) {
if (s - integers[pi] < S)
break;
s -= integers[pi];
}
min_length = min(min_length, i - pi + 1);
}
}
if (min_length > N)
min_length = 0;
printf("%d\n", min_length);
}
return 0;
}
No comments:
Post a Comment