Pagini recente » Cod sursa (job #1445485) | Cod sursa (job #1418813) | Cod sursa (job #612122) | Cod sursa (job #1855194) | Cod sursa (job #1184882)
// Problema secv2
#include <stdio.h>
#define MAX 50001
long S[MAX];
int main()
{
long n, k, i;
int x;
freopen( "secv2.in", "rt", stdin );
scanf( "%ld %ld", &n, &k );
S[0] = 0;
for( i=1; i<=n; i++ ) {
scanf( "%d", &x );
S[i] = S[i-1] + x;
}
fclose( stdin );
long max = -MAX;
long p, u, j, 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;
printf( "Go for sum1 [%ld:%ld]\n", p, u );
}
else {
sum = sum2;
u = i;
printf( "Go for sum2 [%ld:%ld]\n", p, u );
}
if( sum > max ) {
max = sum;
start = p;
finish = u;
}
}
freopen( "secv2.out", "wt", stdout );
printf( "%ld %ld %ld\n", start, finish, max );
fclose( stdout );
return 0;
}