Cod sursa(job #1955019)

Utilizator darian2001Clodnischi Darian Antonio darian2001 Data 5 aprilie 2017 19:38:09
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream f("secv2.in");
ofstream g("secv2.out");

int main()
{
    short numere[50001],corect=false;
    long long suma[50001],n,k,minn,maxx,beg,fin,smax=-2e15,inc=1,sf=0;
    f>>n>>k>>numere[1];
    suma[1]=numere[1];
    maxx=suma[1];minn=suma[1];
    for(int i=2;i<=n;i++)f>>numere[i],suma[i]=suma[i-1]+numere[i];
    while(sf<n)
    {
        maxx=-50000,minn=50000;
        for(int i=sf+1;i<=n;i++)
            if(suma[i]>=maxx)maxx=suma[i],sf=i;
        for(int i=inc;i<=sf-k;i++)
            if(suma[i]<minn)minn=suma[i],inc=i;
        if(suma[sf]-suma[inc]>smax&&sf-inc+1>=k)
            smax=suma[sf]-suma[inc],beg=inc,fin=sf;
    }
    g<<beg+1<<" "<<fin<<" "<<smax<<"\n";
    f.close();
    g.close();
    return 0;
}