Cod sursa(job #2365298)

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

using namespace std;

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

int n, k;
long long sum;

deque <int> subsec;
vector <int> copie;

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

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

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