Cod sursa(job #662321)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 16 ianuarie 2012 15:23:56
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <deque>
#include <cstdio>
using namespace std;

int v[5000005];
deque<int> d;
long long S;

int main()
{
	int n,k;
	freopen("deque.in","r", stdin);
	freopen("deque.out","w", stdout);
	scanf("%d %d\n",&n,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		while(d.size()!=0 && v[d.back()]>=v[i]) d.pop_back();
		d.push_back(i);
		if(i>=k) S+=v[d.front()];
		if(i-k+1==d.front()) d.pop_front();
	}
	printf("%lld",S);
	
	return 0;
}