Cod sursa(job #2758004)

Utilizator lahayonTester lahayon Data 7 iunie 2021 23:07:26
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <deque>

using namespace std;


int main(){    

    ifstream cin("deque.in");
    ofstream cout("deque.out");

    int N, K, current;
    long long sum = 0;
    cin >> N >> K;
    deque<pair<int, int>> DEQ;
    for(int i = 1; i <= N; ++i){

        cin >> current;
        while(!DEQ.empty() && current <= DEQ.back().first)
            DEQ.pop_back();
        while(!DEQ.empty() && DEQ.front().second <= i - K)
            DEQ.pop_front();
        DEQ.push_back(pair<int, int>(current, i));
        if(i >= K)
            sum += DEQ.front().first;
    }

    cout << sum;

    cin.close();
    cout.close();

  return 0;
	
}