Cod sursa(job #944233)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 27 aprilie 2013 19:32:12
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

#define Nmax 50005
#define ll long long

ll v[Nmax];

int N, K, inceput, sfarsit, SMAX;

void citire(){

    ifstream f("secv2.in");

    f >> N >> K;

    for ( int i = 1; i <= N; ++i )
        f >> v[i];

    f.close();
}

void rezolva(){

    int S = 0, intmp, sftno;

    for ( int i = 1; i <= N; ++i ){

        if ( S < 0 )
            S = 0,
            intmp = i;

        S += v[i];

        if ( S > SMAX && i - intmp >= K ){

            SMAX = S;
            inceput = intmp;
            sfarsit = i;
        }
    }
}

void afis(){

    ofstream g("secv2.out");

    g << inceput << " " << sfarsit << " " << SMAX;
}

int main(){

    citire();
    rezolva();
    afis();

    return 0;
}