Cod sursa(job #2913182)

Utilizator bumblebeeGeorge Bondar bumblebee Data 13 iulie 2022 10:38:52
Problema Secventa 2 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
using namespace std;
 
ifstream fin("secv2.in");
ofstream fout("secv2.out");
 
int main() {
    int n, k, best = 0, value, startIdx = 1, maxStartIdx = 1, maxEndIdx = 1, maxBest = -25001, counter = 0, first = 1;
    fin >> n >> k;
    for (int i = 1; i <= n; i++) {
        fin >> value;
        if (counter < k) {
            best += value;
            ++counter;
        } else {
            if (best > maxBest && first) {
                maxBest = best;
                maxStartIdx = 1;
                maxEndIdx = k;
                first = 0;
            }
            if (best + value >= value) {
                best += value;
                ++counter;
            } else if (value > best) {
                startIdx = i;
                best = value;
                counter = 0;
            }
            if (counter >= k && best > maxBest) {
                maxBest = best;
                maxStartIdx = startIdx;
                maxEndIdx = i;
            }
        }
    }
    fout << maxStartIdx << " " << maxEndIdx << " " << maxBest;
    return 0;
}