Cod sursa(job #217165)

Utilizator AthanaricCirith Gorgor Athanaric Data 27 octombrie 2008 11:51:40
Problema Secventa 2 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>   
#define N 50005   
#define MIC -1500000000   
int s[N],k,n,pozi,pozf,v,sc,smax=MIC;   
//pozi=pzitia init a celei mai bune secv   
//pozf...   
void calcul()   
{   
    sc=s[k-1];   
    int poz=1;//poz=pozitia de inceput a secventei curente   
    for (int i=k; i<=n; i++)   
    {   
        sc+=v;   
        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);   
        s[i]=s[i-1]+v;   
    }   
}   
int main ()   
{   
    freopen("secv2.in","r",stdin);   
    freopen("secv2.out","w",stdout);   
    citire();   
    calcul();   
    printf("%d %d %d\n",pozi,pozf,smax);   
    return 0;   
}