Cod sursa(job #1184882)

Utilizator Bluedrop_demonPandia Gheorghe Bluedrop_demon Data 14 mai 2014 13:15:10
Problema Secventa 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
// 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;
}