Cod sursa(job #932724)

Utilizator h2g2Ford Prefect h2g2 Data 29 martie 2013 10:29:22
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
#include <algorithm>
#define nmax 5000005
using namespace std;

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

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

	int n, k, i, val, sol = 0;
	f>>n>>k;

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

		while(!d.empty() && val <= v[ d.back() ]) d.pop_back();
		
		d.push_back(i);

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

	cout<<sol<<"\n";
	g<<sol<<"\n";


	return 0;
}