Cod sursa(job #714344)

Utilizator harababurelPuscas Sergiu harababurel Data 15 martie 2012 18:04:54
Problema Deque Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
/*DEQUE, PRIMA INCERCARE*/
#include <iostream>
#include <fstream>
using namespace std;
int main() {
	ifstream f("deque.in");
	ofstream g("deque.out");
	int n, k, i, v[50005], d[50005], baza, varf;
	long long s=0;
	
	f>>n>>k;
	for(i=1; i<=n; i++) f>>v[i];
	
	baza=1; varf=0;	//baza>varf -> deque vid
	for(i=1; i<=n; i++) {
		while(baza<=varf && v[i]<=v[d[varf]]) varf--; //elimin de la capat toate elementele mai mari ca v[i];
		
		varf++;
		d[varf]=i; //bag elementul in deque
		
		
		if(d[baza]==i-k) baza++;
		if(i>=k) s+=v[d[baza]];
		
	}
	g<<s;
	//cout<<baza<<" "<<varf<<"\n"<<s;
	//for(i=baza; i<=varf; i++) g<<v[i]<<" ";
	
	f.close();
	g.close();
	return 0;
}