Cod sursa(job #217171)

Utilizator AthanaricCirith Gorgor Athanaric Data 27 octombrie 2008 12:27:34
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>   
#define N 50005   
#define MIC -1500000000   
int s[N],k,n,pozi,pozf,v[N],sc,smax=MIC; 
void calcul()   
{   
    sc=s[k-1];   
    int poz=1;
    for (int i=k; i<=n; i++)   
    {   
        sc+=v[i];   
        if(sc>smax)   
        {   
            smax=sc;   
            pozi=poz;   
            pozf=i;   
        }   
        if (s[i]-s[i-k]>sc)   
        {   
            sc=s[i]-s[i-k];   
            poz=i-k+1;   
        }   
    }   
}   
void citire()   
{   
    scanf("%d%d",&n,&k);   
    for(int i=1; i<=n; ++i)   
    {   
        scanf("%d",&v[i]);   
        s[i]=s[i-1]+v[i];   
    }   
}   
int main ()   
{   
    freopen("secv2.in","r",stdin);   
    freopen("secv2.out","w",stdout);   
    citire();   
    calcul();   
    printf("%d %d %d\n",pozi,pozf,smax);   
    return 0;   
}