Cod sursa(job #3220916)

Utilizator arrckerArdeleanu Aris Matei arrcker Data 5 aprilie 2024 11:12:05
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream gout("deque.out");

int k,n,v[5000002];
deque <int> dk;
long long s;

int main(){

    fin>>n>>k;
    for(int i=1; i<=n; ++i)
        fin>>v[i];

    for(int i=1; i<=k; ++i){
        while(!dk.empty() && v[i]<=v[dk.back()])
            dk.pop_back();
        dk.push_back(i);
    }
   s=v[dk.front()];

    for(int i=k+1; i<=n; ++i){
        while(!dk.empty() && v[i]<=v[dk.back()])
            dk.pop_back();
        if(!dk.empty() && i-dk.front()==k) dk.pop_front();
        dk.push_back(i);
        s+=v[dk.front()];
    }

    gout<<s;




return 0;
}