Pagini recente » Cod sursa (job #1260989) | Cod sursa (job #566659) | Cod sursa (job #19917) | Cod sursa (job #1577487) | Cod sursa (job #1184883)
// Problema secv2
#include <stdio.h>
#define MAX 50001
long S[MAX];
int main()
{
long n, k, i;
int x;
FILE *f, *g;
f = fopen( "secv2.in", "rt" );
fscanf( f, "%ld %ld", &n, &k );
S[0] = 0;
for( i=1; i<=n; i++ ) {
fscanf( f, "%d", &x );
S[i] = S[i-1] + x;
}
fclose( f );
long max = -MAX;
long p, u, sum, sum1, sum2, start, finish;
// Prima secventa
start = 1;
finish = k;
max = S[k];
sum = max;
for( i=k+1; i<=n; i++ ) {
sum1 = S[i] - S[i-k];
sum2 = sum + S[i] - S[i-1];
if( sum1 > sum2 ) {
p = i-k+1;
u = i;
sum = sum1;
}
else {
sum = sum2;
u = i;
}
if( sum > max ) {
max = sum;
start = p;
finish = u;
}
}
g = fopen( "secv2.out", "wt" );
fprintf( g, "%ld %ld %ld\n", start, finish, max );
fclose( g );
return 0;
}