Cod sursa(job #1841177)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 5 ianuarie 2017 13:36:51
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("secv2.in");
ofstream fout("secv2.out");

long long soli,solf,i,j,s,maxim=-2000000000,pozi,pozf,k,n,v[50010],st,dr,nr;

int main()
{
    fin >> n >> k;
    for(i=1;i<=n;i++)
    {
        fin >> v[i];
        s+=v[i];
        if(i==k)
        {
            maxim=s;
            soli=1;
            solf=k;
        }
        if(i>k)
        {
            s=s-v[i-k];
            if(s>maxim)
            {
                maxim=s;
                soli=i-k+1;
                solf=i;
            }
        }
    }
    s=v[1];
    nr=1;
    pozi=1;
    pozf=1;
    for(i=2;i<=n;i++)
    {
        if(s+v[i]>v[i])
        {
            s+=v[i];
            nr++;
            pozf++;
            if(nr>=k and s>maxim)
            {
                maxim=s;
                soli=pozi;
                solf=pozf;
            }
        }
        else
        {
            pozi=i;
            pozf=i;
            nr=1;
            s=v[i];
        }
    }
    fout << soli << ' ' << solf << ' ' << maxim;
    return 0;
}