Cod sursa(job #370477)

Utilizator undogSavu Victor Gabriel undog Data 1 decembrie 2009 13:23:28
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <cstdio>
#include <deque>

int a[5000000];

int main(){
	freopen("deque.in","rt",stdin);
	freopen("deque.out","wt",stdout);
	
	std::deque<int> x;
	int i,n,k;
	long long sum=0;
	
	scanf("%d%d",&n,&k);
	
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
		
	for(i=0;i<n;i++){
		while(!x.empty()&&a[i]<x.back())x.pop_back();
		x.push_back(a[i]);
		if(i>=k-1){
			if(a[i-k]==x.front())
				x.pop_front();
			sum+=x.front();
		}
	}
	
	printf("%lld",sum);
	
	return 0;
}