Cod sursa(job #936926)

Utilizator forgetHow Si Yu forget Data 9 aprilie 2013 04:28:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>
#include <deque>
using namespace std;

int main() {
	ifstream fin("deque.in");
	ofstream fout("deque.out");
	int n, k;
	fin >> n >> k;
	long long ans = 0;
	deque<pair<int,int> > min;
	int a;
	for (int i = 1; i <= n; ++i) {
		fin >> a;
		while (!min.empty() && min.back().second >= a) min.pop_back();
		min.push_back(pair<int,int>(i,a));
		if (min.front().first == i-k) min.pop_front();
		if (i >= k) ans += min.front().second;
	}
	fout << ans;
	return 0;
}