Cod sursa(job #543004)

Utilizator daniel14gavrilescu constantin-daniel daniel14 Data 27 februarie 2011 13:29:57
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include<fstream>
#include<deque>
using namespace std;
#define maxn 5000001
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,a[maxn],d[maxn];
int front=1,back,i;
long long S;
int main(){
	f>>n>>k;  
	for(i=1;i<=n;i++) f>>a[i];
	for(i=1;i<=n;i++) {
		while(front<=back&&a[i]<=a[d[back]])back--; 
			d[++back]=i; 
		if(d[front]==i-k) front++; 
		if(i>=k)S+=a[d[front]];
	}
	g<<S<<'\n';
	g.close();
	return 0;
}