Cod sursa(job #2861732)

Utilizator sabinmMaxim Sabin sabinm Data 4 martie 2022 12:49:38
Problema Secventa 2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <bits/stdc++.h>
#define NMAX 50005

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

/// dbg
/*
#define fin cin
#define fout cout
*/

// teoretic merge si pe short vectorul, Elementele din vector sunt numere intregi din intervalul [-25.000, 25.000]

int N, K, sp[NMAX], x;

int main()
{
    fin >> N >> K;
    for (int i = 0; i < N; ++i)
    {
        fin >> x;
        sp[i] = sp[i - 1] + x;
    }
    int Min = 0, cnt = INT_MIN, minIndex = 0, startIndex = 0, stopIndex = 0;
    for (int i = 0; i < N; ++i)
    {
        if (sp[i] - Min > cnt && i - minIndex >= K)
        {
            cnt = sp[i] - Min;
            startIndex = minIndex + 1;
            stopIndex = i;
        }
        if (i - K + 1 > 0 && sp[i] - sp[i - K] > cnt)
        {
            cnt = sp[i] - sp[i - K];
            startIndex = i - K + 1;
            stopIndex = i;
        }
        if (sp[i] < Min)
        {
            Min = sp[i];
            minIndex = i;
        }
    }
    fout << startIndex << ' ' << stopIndex << ' '<<cnt;
    return 0;
}