Cod sursa(job #323810)

Utilizator ZillaMathe Bogdan Zilla Data 13 iunie 2009 17:19:32
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>

#define Nmax 50100

struct vector{
    int s,inc;
};

int a[Nmax],sum,n,k,poz1=1,poz2;
vector b[Nmax];

int main()
{
    int i;
    freopen("secv2.in","r",stdin);
    freopen("secv2.out","w",stdout);
    scanf("%d%d",&n,&k);
    for(i=1;i<=k;++i)
        {
            scanf("%d",&a[i]);
            a[i]+=a[i-1];
        }
    sum=a[k];
    poz2=k;
    for(i=k+1;i<=n;++i)
        {
            b[i-k]=b[i-k-1];
            if(a[i-k]<b[i-k].s)
                {
                    b[i-k].s=a[i-k];
                    b[i-k].inc=i-k;
                }
            scanf("%d",&a[i]);
            a[i]+=a[i-1];
            if(a[i]-b[i-k].s>sum)
                {
                    sum=a[i]-b[i-k].s;
                    poz1=b[i-k].inc+1;
                    poz2=i;
                }   
        }
    printf("%d %d %d",poz1,poz2,sum);
    return 0;    
}