Cod sursa(job #1081461)

Utilizator PetreFlorinaFMI Petre Florina PetreFlorina Data 13 ianuarie 2014 17:23:40
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#include <iostream>

using namespace std;

int n, k;
int a[5000001], d[5000001];
int dr, st;
long long s;

ifstream f("deque.in");
ofstream g("deque.out");

int main()
{
	int i;

	f >> n >> k;

	for (i=1; i <= n; i++)
		f >> a[i];

	dr = 1;
    st = 0;

	for (i = 1; i <= n; i++)
	{
	    while ((dr <= st) && (a[i] <= a[ d[st] ]))
	    st--;

        d[++st] = i;
        if (d[dr] == i-k)
         dr++;
        if (i >= k)
         s += a[ d[dr]];
	}

	g << s;

	return 0;
}