Cod sursa(job #575010)

Utilizator AnteusPatrascoiu Mihai Anteus Data 7 aprilie 2011 19:31:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <stdio.h>
#include <deque>
#include <stdlib.h> 
using namespace std;
FILE *f=fopen ("deque.in", "r");
FILE *g=fopen ("deque.out", "w");
int v[5000001],i,n,k;
long long S;
deque <int> dq;

int main() {
fscanf (f, "%d%d", &n,&k);

for (i=1;i<=n;++i)
{
	fscanf (f, "%d", &v[i]);
	
	while (!dq.empty() && v[i]<=v[dq.back()] )
		dq.pop_back();

	dq.push_back(i);
	
	
	if (i>=k)
		S+=v[dq.front()];
	
	if (dq.front()==i-k+1)
		dq.pop_front();
}

fprintf (g, "%lld", S);
return 0;
}