Cod sursa(job #386781)

Utilizator titusuTitus C titusu Data 25 ianuarie 2010 22:45:23
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
using namespace std;
#include <cstdio>

int n,a[5000005], dq[5000005], k;

int main(){
	freopen("deque.in","r",stdin);
	scanf("%d%d",&n,&k);
	long long s=0;
	for(int i=1;i<=n;++i)
		scanf("%d",a+i);
	int st=1,dr=0;
	for(int i=1;i<=n;++i){
		if(i-dq[st]>=k)
			st++;
		while( a[i] <= a[dq[dr]] && st<=dr)
			dr--;
		dq[++dr]=i;
		if(i>=k)
			s+=a[dq[st]];
		//printf("%d ",a[dq[st]]);
	}
	freopen("deque.out","w",stdout);
	printf("%lld\n",s);
	return 0;	
}