Cod sursa(job #893751)

Utilizator harababurelPuscas Sergiu harababurel Data 26 februarie 2013 17:42:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
#define nmax 5000005
using namespace std;

deque <int> d;
int v[nmax];

int main() {
	ifstream f("deque.in");
	ofstream g("deque.out");

	int n, k, i, j;
	long long sol = 0;

	f>>n>>k;

	for(i=1; i<=n; i++) {
		f>>v[i];

		while(!d.empty() && v[ d.back() ] >= v[i]) d.pop_back();
		d.push_back(i);
	
		if(d.front() + k <= i) d.pop_front();

		if(i >= k) sol += v[d.front()];		
	}

	g<<sol<<"\n";

	return 0;
}