Cod sursa(job #2715914)

Utilizator Razvan48Capatina Razvan Nicolae Razvan48 Data 4 martie 2021 13:14:42
Problema Secventa 2 Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <climits>

using namespace std;

const int NMAX = 50000;

int v[1 + NMAX];
int sumePartiale[1 + NMAX];

int main()
{
    ifstream in("secv2.in");
    ofstream out("secv2.out");

    int n, k;

    in >> n >> k;

    int sol = INT_MIN;
    int sumaMinima = 0;

    int stMinim = 0;

    int stSol = -1;
    int drSol = -1;

    for (int i = 1; i <= n; i++)
    {
        in >> v[i];

        sumePartiale[i] = sumePartiale[i - 1] + v[i];

        if (i - k > 0)
        {
            if (sumePartiale[i - k] < sumaMinima)
            {
                sumaMinima = sumePartiale[i - k];
                stMinim = i - k;
            }

            if (sumePartiale[i] - sumaMinima > sol)
            {
                sol = sumePartiale[i] - sumaMinima;

                stSol = stMinim + 1;
                drSol = i;
            }
        }
    }

    out << stSol << ' ' << drSol << ' ' << sol << '\n';

    return 0;
}