Pagini recente » Cod sursa (job #303280) | Cod sursa (job #3293568) | Cod sursa (job #1000112)
#include <stdio.h>
#include <stdlib.h>
#define max(a,b) (a) > (b) ? (a) : (b)
int A[50005], A_mod[50005], I[50005];
int K, N;
int main()
{
int i, j;
long long bestsum;
int left, right;
freopen("secv2.in","r",stdin);
freopen("secv2.out","w",stdout);
scanf("%d",&N);
scanf("%d",&K);
A_mod[0] = 0;
for( i=1; i<=N; i++ ) {
scanf("%d",&A[i]);
A_mod[i] = max(0,A_mod[i-1]+A[i]);
if ( !A_mod[i] ) I[i] = 1;
}
bestsum = 0;
for ( i=1; i<=N; i++ ) {
j = i;
while (!I[j]) {
--j;
}
if ( A_mod[i] > bestsum && i-j-1 >= K) {
bestsum = A_mod[i];
left = j+1;
right = i;
}
}
printf("%d %d %lld\n",left,right,bestsum);
return 0;
}