Cod sursa(job #709213)

Utilizator iuli1505Parasca Iuliana iuli1505 Data 7 martie 2012 20:18:39
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<cstdio>
#include<deque>
#define nmax 5000010
using namespace std;
int n,k,x[nmax];
long long s;
deque<int> q;
int main()
{
	int i;
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d%d", &n, &k);
	for(i=1;i<=n;i++)
		scanf("%d", &x[i]);
	for(i=1;i<=n;i++)
	{
		while(q.size()&&x[q.back()]>x[i])
			q.pop_back();
		q.push_back(i);
		if(q.front()==i-k)
			q.pop_front();
		if(i>=k)
			s+=x[q.front()];
	}
	printf("%lld", s);
	return 0;
}