Cod sursa(job #3236832)

Utilizator Andrei-Dani-10Pisla Andrei Daniel Andrei-Dani-10 Data 2 iulie 2024 17:58:40
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <string>
using namespace std;
ifstream in("secv2.in");
ofstream out("secv2.out");
int64_t n, k, sp[50002], best = -(1 << 30), mini = (1 << 30);
int64_t sMax = 0, st, dr, st_;

string buffer;
int citire(){
    in>>buffer; int rez = 0;
    for(int i = 0; i < buffer.size(); i++)
        if('0' <= buffer[i] && buffer[i] <= '9')
            rez = 10 * rez + buffer[i] - '0';
    return rez * ((buffer[0] == '-') ? -1 : 1);
}

int main(){
    n = citire(); k = citire();
    for(int i = 1; i <= n; i++)
        sp[i] = citire(), sp[i] += sp[i - 1];
    ///best = sp[k];
    for(int i = k; i <= n; i++){
        ///mini = min(mini, sp[i - k]);
        ///best = max(best, sp[i] - mini);
        if(mini > sp[i - k])
            mini = sp[i - k], st_ = i - k + 1;
        if(best < sp[i] - mini)
            best = sp[i] - mini, st = st_, dr = i;
    }
    out<<st<<" "<<dr<<" "<<best;
    return 0;
}