Cod sursa(job #3310426)

Utilizator NICO_Gavris Matei Nicolae NICO_ Data 13 septembrie 2025 19:25:24
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>
using namespace std;

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

const int MAXN = 50001;
int v[MAXN];
long long sum[MAXN], minpar[MAXN];
int pos[MAXN];

int main() {
    int n, k;
    fin >> n >> k;
    for (int i = 1; i <= n; i++)
         fin >> v[i];

    sum[0] = 0;
    for (int i = 1; i <= n; i++)
        sum[i] = sum[i - 1] + v[i];

    minpar[0] = sum[0];
    pos[0] = 0;
    for (int i = 1; i <= n; i++) {
        if (sum[i] < minpar[i - 1]) {
            minpar[i] = sum[i];
            pos[i] = i;
        } else {
            minpar[i] = minpar[i - 1];
            pos[i] = pos[i - 1];
        }
    }

    long long best;
    int st = 1, dr = k;
    bool ok = false;

    for (int i = k; i <= n; i++) {
        long long cand = sum[i] - minpar[i - k];
        if (!ok || cand > best) {
            best = cand;
            st = pos[i - k] + 1;
            dr = i;
            ok = true;
        }
    }

    fout << st << " " << dr << " " << best;
    return 0;
}