Cod sursa(job #2549359)

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

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

const int NMAX = 50'005;
int n,k,v[NMAX],s[NMAX],I,J,sol = -(1 << 30);
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];
    }
    
    for(int i = k;i <= n;++i){
        
        while(!d.empty() && s[i - k] < s[d.back()])
            d.pop_back();
        
        d.push_back(i - k);
        
        if(s[i] - s[d.front()] > sol){
            sol = s[i] - s[d.front()];
            I = d.front() + 1;
            J = i;
        }
    }
    
    g << I << ' ' << J << ' ' << sol;
    
    return 0;
}