Cod sursa(job #657013)

Utilizator DEYDEY2Tudorica Andrei DEYDEY2 Data 5 ianuarie 2012 17:22:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
//problema deque  arhiva educationala infoarena
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n, k;
int a[5000010], Deque[5000010];
int st, dr;
long long rez;

int main()
{
	int i;
	f>>n>>k;
	for (i = 1; i <= n; i++) 
		f>>a[i];
	st = 1, dr = 0; 
	for (i = 1; i <= n; i++)
	{
		while (st <= dr && a[i] <= a[ Deque[dr] ]) dr--;		
		Deque[++dr] = i;
		if (Deque[st] == i-k) st++;
		if (i >= k) rez += a[ Deque[st]]; 	
	}
	g<<rez;
	return 0;
}