Cod sursa(job #2734235)

Utilizator AdrianSkStanciu Adrian AdrianSk Data 31 martie 2021 16:00:11
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
#define MAXN 50001
#define ll long long
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
 
 
int sp[MAXN], n, k;
int main() {
    fin >> n >> k;
 
    ll x;
    fin >> x;
    sp[0] = x;
 
    for(ll i = 1; i < n; ++i) {
         fin >> x;
 
         sp[i] += sp[i - 1] + x;
    }
 
    int minim = 0, sum = -250001, in = 0, sf = 0;
    for(int i = k - 1; i < n; ++i) {
        if(i >= k && sp[i - k] < sp[minim])
            minim = i - k;
 
        if(sp[minim] < 0 && i >= k) {
            if(sp[i] - sp[minim] > sum) {
                sum = sp[i] - sp[minim];
                in = minim + 2;
                sf = i + 1;
            }
        } else {
            if(sp[i] > sum) {
                sum = sp[i];
                in = 1;
                sf = i + 1;
            }
        }
    }
 
    fout << in <<" "<< sf <<" "<< sum;
}