Pagini recente » Cod sursa (job #1748436) | Cod sursa (job #174973) | Cod sursa (job #291299) | Cod sursa (job #764465) | Cod sursa (job #2478032)
#include <stdio.h>
#define N 50000
#define INF 1500000
int s[N + 1];
int a[N + 1];
int oof( int a, int b ) {
if ( a > b )
return a;
return b;
}
int main() {
FILE *fin, *fout;
int n, k, i, sc, smax, stmax, drmax, stc;
fin = fopen( "secv2.in", "r" );
fscanf( fin, "%d%d", &n, &k );
for ( i = 1; i <= n; i ++ ) {
fscanf( fin, "%d", &a[i] );
s[i] = s[i - 1] + a[i];
}
sc = smax = s[k];
stc = stmax = 1;
drmax = k;
for ( i = k + 1; i <= n; i ++ ) {
fscanf( fin, "%d", &a[i] );
s[i] = s[i - 1] + a[i];
if ( s[i] - s[i - k] > sc + a[i] ) {
sc = s[i] - s[i - k];
stc = i - k + 1;
} else {
sc += a[i];
}
if ( sc > smax ) {
smax = sc;
stmax = stc;
drmax = i;
}
}
fclose( fin );
fout = fopen( "secv2.out", "w" );
fprintf( fout, "%d %d %d\n", stmax, drmax, smax );
fclose( fout );
return 0;
}