Cod sursa(job #1313731)

Utilizator radudorosRadu Doros radudoros Data 11 ianuarie 2015 00:09:49
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <iostream>
#define NMAX 5000001
using namespace std;

ifstream fin("deque.in");
ofstream fout("deque.out");

int deque[NMAX];
int v[NMAX];
int front = 1;
int back = 0;

int main()
{
	int n;
	fin >> n;
	int k;
	fin >> k;
	for (int i = 1; i <= n; i++)
	{
		fin >> v[i];
	}
	long long sum = 0;
	for (int i = 1; i <= n; i++)
	{
		while (front <= back&&v[i] <= v[deque[back]])
		{
			back--;
		}
		deque[++back] = i;
		if (deque[front] == i - k)
		{
			front++;
		}
		if (i>=k)
			sum += v[deque[front]];
	}
	fout << sum;

}