Cod sursa(job #1225220)

Utilizator roxana.istratePoenaru Roxana roxana.istrate Data 1 septembrie 2014 17:24:00
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <deque>
#include <utility>

using namespace std;

int n, k, elem;
long long sum;

int main(){
	freopen("deque.in", "r", stdin);
	freopen("deque.out", "rw", stdout);
	scanf("%d%d", &n, &k);
	deque<pair<int, int>> dq;
	for (int i = 0; i < n; i++){
		scanf("%d", &elem);
		if (i >= k){
			sum += dq.front().first;
			if (dq.front().second <= i - k){
				dq.pop_front();
			}
		}
		while (dq.size() && dq.back().first >= elem){
			dq.pop_back();
		}
		dq.push_back(make_pair(elem, i));
	}
	printf("%ld\n", sum);
	return 0;
}