Cod sursa(job #736065)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 17 aprilie 2012 19:21:49
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<iostream>
#include<fstream>
using namespace std;

#define maxn 5000010

int n,k,a[maxn],deque[maxn],front,back,i;
long long suma;

ifstream in("deque.in");
ofstream out("deque.out");

int main()
{
	in>>n>>k;
	for(i=1;i<=n;i++)
		in>>a[i];
	front=1;back=0;
	for(i=1;i<=n;i++){
		while(front<=back && a[i]<=a[deque[back]]) back--;
		deque[++back]=i;
		if(deque[front]==i-k) front++;
		if(i>=k) suma+=a[deque[front]];
	}
	out<<suma;
	return 0;
}