Cod sursa(job #2228223)

Utilizator BatedCrayonBratosin David - Robert BatedCrayon Data 2 august 2018 22:59:39
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <climits>
#define NMAX 50001

using namespace std;

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

long long int sumaMax = LONG_MIN;
long long int rez;
int n,k,i,st,dr;

int v[NMAX];

void Citire()
{
    in>>n>>k;
    for(i=1; i<=n; i++)
        in>>v[i];
}

void Determinare()
{
    if(n==k)
    {
        for(i=1; i<=n; i++)
            rez+=v[i];
        st=1;
        dr=n;
    }
    else
    {
        for(i=1; i<=n; i++)
        {
            if(sumaMax<0)
            {
                sumaMax=v[i];
                st=i;
            }
            else
                sumaMax+=v[i];
            if(sumaMax>rez && i-st+1>=k)
            {
                rez=sumaMax;
                dr=i;
            }
        }
    }
}

void Afisare()
{
    out<<st<<" "<<dr<<" "<<rez;
}

int main()
{
    Citire();
    Determinare();
    Afisare();
    return 0;
}