Cod sursa(job #2549319)

Utilizator marius004scarlat marius marius004 Data 17 februarie 2020 16:31:12
Problema Secventa 2 Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <deque>

std::ifstream f("secv2.in");
std::ofstream g("secv2.out");

const int NMAX = 50'005;
long long n,k,v[NMAX],s[NMAX],maxx,I,J;
std::deque<int>d;

int main(){
    
    f >> n >> k;
    
    for(int i = 1;i <= n;++i){
        f >> v[i];
        s[i] = s[i - 1] + v[i];
    }
    
    d.push_back(1);
    
    for(int i = 2;i <= n;++i){
        
        while(!d.empty() && s[i] <= s[d.back()])
            d.pop_back();
        
        d.push_back(i);
        
        if(s[i] - s[d.front()] > maxx && i - d.front() + 1 >= k){
            maxx = s[i] - s[d.front()];
            I = d.front() + 1;
            J = i;
        }
    }
    
    g << I << ' ' << J << ' ' << maxx;
    
    return 0;
}