Cod sursa(job #2817027)

Utilizator paul911234vaida paul paul911234 Data 12 decembrie 2021 18:30:36
Problema Secventa 2 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int SIZE_N = 50001;

int n, k, sp[SIZE_N];

int main() {
    fin >> n >> k;
    for (int i = 1; i <= n; ++i) {
        fin >> sp[i];
    }
    long long begin = 1, end = k, valMin = 25000, pos = 0, sum = sp[1];
    for (int i = 1; i <= n; ++i) {
        sp[i] = sp[i - 1] + sp[i];
        if (sp[i] - valMin > sum && i - pos >= k) {
            sum = sp[i] - valMin;
            begin = pos + 1;
            end = i;
        } else if (i >= k && sp[i] - sp[i - k] > sum) {
            sum = sp[i] - sp[i - k];
            begin = i - k + 1;
            end = i;
        }
        if (sp[i] < valMin ) {
            valMin = sp[i], pos = i;
        }
    }
    if (n == k) {
        fout << 1 << ' ' << k << ' ' << sp[k];
    }  else {
        fout << begin << ' ' << end << ' ' << sum;
    }
}