Cod sursa(job #1073792)

Utilizator vrabievictorvictor vrabie vrabievictor Data 6 ianuarie 2014 20:27:27
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 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;
}