Cod sursa(job #2876665)

Utilizator indianu_talpa_iuteTisca Catalin indianu_talpa_iute Data 23 martie 2022 13:31:16
Problema Secventa 2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>
#define MAXN 50005

using namespace std;

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

int n, k, arr[MAXN];
void citire() {
    fin >> n >> k >> arr[1];
    for (int i = 2; i <= n; i++) {
        fin >> arr[i];
        arr[i] += arr[i - 1];
    }
}

void rezolvare() {
    int st = 1, maxi = INT_MIN, stmax, drmax;
    for (int dr = 1; dr <= n; dr++) {
        if (arr[dr] - arr[st] > maxi && dr - st >= k)
            maxi = arr[dr] - arr[st], stmax = st, drmax = dr;
        if (arr[dr] - arr[dr - k] > maxi)
            maxi = arr[dr] - arr[dr - k - 1], stmax = dr - k, drmax = dr;
        if (arr[dr] < arr[st])
            st = dr;
    }
    fout << stmax + 1 << ' ' << drmax << ' ' << maxi;
}

int main() {
    citire();
    rezolvare();
    return 0;
}