Cod sursa(job #932732)

Utilizator h2g2Ford Prefect h2g2 Data 29 martie 2013 10:32:37
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 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;
	long long 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(d.front() + k - 1 < i) d.pop_front();
		
		if(i>=k) sol += 1LL * v[ d.front() ];	
	}

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


	return 0;
}