Cod sursa(job #2489846)

Utilizator Dorin07Cuibus Dorin Iosif Dorin07 Data 9 noiembrie 2019 12:14:59
Problema Deque Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <deque>
#include <vector>
#include <fstream>
using namespace std;

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

deque < int > q;
long long n, k, ans;
vector < int > v;

int main(){
    fin>>n>>k;
    for(int i = 1; i <= n; ++i){
        int x;
        fin>>x;
        v.push_back(x);
    }
    for(int i = 0; i <= k-1; ++i){
        while(!q.empty() && v[q.back()] > v[i])
            q.pop_back();
        q.push_back(i);
    }
    ///indexam de la 0
    for(int i = k - 1; i < v.size(); ++i){
        if(i - q.front() == k)
            q.pop_front();
        while(!q.empty() && v[q.back()] > v[i])
            q.pop_back();
        q.push_back(i);
        ans += v[q.front()];
    }
    fout<<ans;
}