Cod sursa(job #1644146)

Utilizator razvanlgu31Razvan Lungu razvanlgu31 Data 9 martie 2016 21:42:41
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>

using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int i,n,x,smax,pmax,umax,k,p,smax1,p1,u1,nr,v[50010];
long long s,s1;
int main()
{
    fin>>n>>k;
    smax=-2000000000;
    smax1=-2000000000;
    p=1;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
        x=v[i];
        s+=x;
        if(s>smax && i-p+1>=k){smax=s; pmax=p; umax=i;}
        if(s<0){s=0; p=i+1;}
        if(nr<k)
        {
            nr++;
            s1=s1+x;
            if(nr==k)
            {
                if(s1>smax1)
                {
                    smax1=s1;
                    p1=1;
                    u1=k;
                }
            }
        }
        else
        {
            s1=s1-v[i-k]+x;
            if(s1>smax1)
                {
                    smax1=s1;
                    p1=i;
                    u1=i+k-1;
                }
        }
    }
    if(pmax!=0)
       fout<<pmax<<" "<<umax<<" "<<smax;
       else
        fout<<p1<<" "<<u1<<" "<<smax1;
    return 0;
}