Cod sursa(job #27770)

Utilizator sima_cotizoSima Cotizo sima_cotizo Data 7 martie 2007 08:47:59
Problema Secventa 2 Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#define FIN "secv2.in"
#define FOUT "secv2.out"
#define MAX 50500

long A[MAX], i, st, dr, poz, N, k;
long long S[MAX], act, max;

int main() {
	freopen(FIN, "r", stdin);
	scanf("%ld %ld", &N, &k); 
	for (i=1; i<=N; ++i) {
		scanf("%ld", A+i);
		S[i] = S[i-1] + A[i];
	}
	fclose(stdin);

	st = 1; dr = k;
	max = S[k];
	poz = 1; act = max;
	for (i=k+1; i<=N; ++i) {
		act += A[i];
		if ( act<S[i]-S[i-k] ) {
			act = S[i]-S[i-k];
			poz = i-k+1;
		}
		if ( act>max ) {
			max = act;
			st = poz; dr = i;
		}
	}

	freopen(FOUT, "w", stdout);
	printf("%ld %ld %lld\n", st, dr, max);
	fclose(stdout);
	return 0;
}