Pagini recente » Cod sursa (job #2973680) | Cod sursa (job #1819721) | Cod sursa (job #737149) | Cod sursa (job #2953682) | Cod sursa (job #1779341)
#include <stdio.h>
#include <stdlib.h>
int v[50001], s[50001];
int max( int a, int b ) {
if ( a > b )
return a;
return b;
}
int main() {
FILE *fin, *fout;
int n, k, i, suma, smax, st, dr, j;
fin = fopen( "secv2.in", "r" );
fout = fopen( "secv2.out", "w" );
fscanf( fin, "%d%d", &n, &k );
for ( i = 1; i <= n; i++ )
fscanf( fin, "%d", &v[i] );
for ( i = 1; i <= n - 1; i++ )
s[i+1] = s[i] + v[i+1];
suma = s[k] - s[0];
smax = suma;
j = 1;
for ( i = k + 1; i <= n; i++ ) {
if ( suma + v[i] > s[i] - s[i-k] )
suma += v[i];
else {
suma = s[i] - s[i-k];
j = i - k + 1;
}
if ( smax < suma ) {
smax = suma;
st = j;
dr = i;
}
}
fprintf( fout, "%d %d %d", st, dr, smax );
fclose( fin );
fclose( fout );
return 0;
}