Cod sursa(job #979200)

Utilizator Athena99Anghel Anca Athena99 Data 31 iulie 2013 23:12:05
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cassert>
#include <cstdio>

const int nmax=50005,inf=1000000000;
int s[nmax];

int main()
{
    int n=0,k=0,i=0,x=0,sol=0,s1=0,s2=0,max=-inf,min=inf;

    assert(freopen("secv2.in","r",stdin));
    assert(freopen("secv2.out","w",stdout));

    assert(scanf("%d%d",&n,&k));
    for (i=1; i<=n; ++i)
    {
        assert(scanf("%d",&x));
        s[i]=s[i-1]+x;
    }

    for (i=k; i<=n; ++i)
        if (s[i]>max)
        {
            max=s[i];
            s1=i;
        }

    for (i=1; i<=s1-k; ++i)
        if (s[i]<min)
        {
            min=s[i];
            s2=i;
        }

    ++s2;
    sol=max-min;

    if (min>-1)
    {
        s2=1;
        sol=max;
    }

    printf("%d %d %d\n",s2,s1,sol);
}