Cod sursa(job #592782)

Utilizator cipri20Ilinca Ciprian cipri20 Data 30 mai 2011 18:46:33
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>

const int maxn = 50001;

FILE *in = fopen("secv2.in","r"), *out = fopen("secv2.out","w");

int a[maxn], s[maxn], n, k;

void citire()
{
    fscanf(in, "%d %d", &n, &k);
    for (int i = 1; i <= n; ++i)
    {
        fscanf(in, "%d", &a[i]);
        s[i] = s[i - 1] + a[i];
    }
}

int main()
{
    citire();

    int mins = 0, maxs = s[k], inc = 1, sf = k;
    for (int i = k + 1; i <= n; ++i)
    {
        if (s[i] - s[mins] > maxs)
        {
            maxs = s[i] - s[mins];
            inc = mins + 1;
            sf = i;
        }

        if (s[i - k] < s[mins])
            mins = i - k;
    }

    fprintf(out, "%d %d %d", inc, sf, maxs);

    return 0;
}