Cod sursa(job #1809691)

Utilizator caprariuapCaprariu Alin-Paul caprariuap Data 19 noiembrie 2016 10:22:52
Problema Secventa 2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <vector>
#define nmax 50010

using namespace std;

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

int n,k,s,minim[nmax],maxim,sf,st,inc[nmax],i,a;

int main()
{
    fscanf(fin,"%d%d",&n,&k);
    fscanf(fin,"%d",&a);
    i=1;
    s+=a;
    minim[i]=minim[i-1];
    inc[i]=inc[i-1];
    maxim=s-minim[i-k];
    sf=i;
    st=inc[i-k]+1;
    inc[i]=i;
    for (i=2; i<=n; i++)
    {
        fscanf(fin,"%d",&a);
        s+=a;
        minim[i]=minim[i-1];
        inc[i]=inc[i-1];
        if (s-minim[i-k]>maxim)
        {
            maxim=s-minim[i-k];
            sf=i;
            st=inc[i-k]+1;
        }
        if (s<minim[i])
        {
            inc[i]=i;
            minim[i]=s;
        }
    }
    fprintf(fout,"%d %d %d\n",st,sf,maxim);
}