Cod sursa(job #2365252)

Utilizator alex.sirbuSirbu Alexandru alex.sirbu Data 4 martie 2019 12:40:49
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <set>
#include <vector>
#include <queue>
#include <deque>

using namespace std;

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

long long n, k;
long long sum;

deque <long long> subsec;
vector <long long> copie;

void read(){
    fin>>n>>k;
    for(long long i=1; i<=n; i++){
        long long x;
        fin>>x;
        copie.push_back(x);
    }

    for(int i=1; i<=n; i++){
        while(!subsec.empty() && copie[i]<=copie[subsec.back()])
            subsec.pop_back();
        subsec.push_back(i);
        if(subsec.front()==i-k) subsec.pop_front();
        if(i>=k) sum+=copie[subsec.front()];
    }
    fout<<sum;
}

int main()
{
    read();
    return 0;
}