Cod sursa(job #1576470)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 22 ianuarie 2016 14:59:17
Problema Secventa 2 Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
#include <stdlib.h>

int s[50001];

int main()
{
    FILE *fin = fopen("secv2.in", "r"), *fout = fopen("secv2.out", "w");
    int sc, pc, smax, pmax, umax, x, i, k, n;
    fscanf(fin, "%d%d", &n, &k);
    for (i = 1; i <= k; i ++){
        fscanf(fin, "%d", &x);
        s[i] = s[i - 1] + x;
    }
    sc = smax = s[k];
    pc = pmax = 1;
    umax = k;
    for (i = k + 1; i <= n; i ++){
        fscanf(fin, "%d", &x);
        s[i] = s[i - 1] + x;
        if (s[i] - s[i - k] > sc + x){
            pc = i - k + 1;
            sc = s[i] - s[i - k];
        } else
            sc += x;

        if (sc > smax){
            smax = sc;
            umax = i;
            pmax = pc;
        }
    }
    fprintf(fout, "%d %d %d\n", pmax , umax, smax);
    fclose(fin);
    fclose(fout);
    return 0;
}