Cod sursa(job #631944)

Utilizator sebii_cSebastian Claici sebii_c Data 9 noiembrie 2011 22:31:29
Problema Secventa 2 Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define NMAX 50002

int sum[NMAX], m[NMAX];

int main()
{
    freopen("secv2.in", "r", stdin);
    freopen("secv2.out", "w", stdout);
    int n, k, max, st, end, i, x;
    scanf("%d %d", &n, &k);
    for (i=1; i<=k; ++i) {
	scanf("%d", &x);
	sum[i] = sum[i-1] + x;
    }
    
    m[k] = sum[k];
    max = m[k];	
    
    st = 1, end = k;
    int posa = 1, posb = 1;
    for (i=k+1; i<=n; ++i) {
	scanf("%d", &x);
	sum[i] = sum[i-1] + x;
	m[i] = m[i-1] + x;
	posb = i;
	if (m[i] < sum[i] - sum[i-k]) {
	    m[i] = sum[i] - sum[i-k];
	    posa = i-k+1;
	}
	if (m[i] > max) {
	    max = m[i];
	    st = posa;   
	    end = posb;
	}
    }
    printf("%d %d %d\n", st, end, max);
    return 0;
}