Cod sursa(job #2811905)

Utilizator lolismekAlex Jerpelea lolismek Data 3 decembrie 2021 15:44:54
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int N = 5 * 1e4 + 1;
int v[N];

int main(){
    int n, k;
    fin >> n >> k;
    for(int i = 1; i <= n; i++) fin >> v[i];
    int curr_sum = 0, best_sum = -1e9, l = 0, r = 0, min_sum = 1e9, min_poz = 0, curr_sum_min = 0;
    for(int i = 1; i <= n; i++){
        curr_sum += v[i];
        if(i >= k){
            int j = i - k;
            curr_sum_min += v[j];
            if(curr_sum_min < min_sum){
                min_sum = curr_sum_min;
                min_poz = j;
            }
            if(curr_sum - min_sum > best_sum){
                best_sum = curr_sum - min_sum;
                l = min_poz + 1;
                r = i;
            }
        }
    }
    fout << l << " " << r << " " << best_sum;
    return 0;
}