Cod sursa(job #824646)

Utilizator dragangabrielDragan Andrei Gabriel dragangabriel Data 26 noiembrie 2012 20:30:41
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<cstdio>
#include<deque>
#include<algorithm>
using namespace std;
int n,i,j,k;
long long x[5000005],rez;
deque<int>c;
int main()
{
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d %d",&n,&k);
	rez=0;
	for (i=1;i<=n;i++)
	{
		scanf("%lld",&x[i]);
		while(!c.empty()&&x[c.back()]>x[i]) c.pop_back();
		c.push_back(i);
		if (c.front()<=i-k) c.pop_front();
		if (i>=k) rez+=x[c.front()];
	}
	printf("%lld",rez);
	return 0;
}