Cod sursa(job #1389978)

Utilizator dragos_musanMusan Dragos dragos_musan Data 16 martie 2015 19:16:39
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>

using namespace std;

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

int d[5000001], v[5000001];
int st, dr, n, k;

void stanga(int i)
{
	if (i - d[st] == k)
		st++;
}

void dreapta(int i)
{
	while (st <= dr && v[i] <= v[d[dr]])
		dr--;
	d[++dr] = i;
}

int main()
{
    int i,s = 0;

    f >> n >> k;

    for(i = 1; i<=n; i++)
    {
        f >> v[i];
        stanga(i);
        dreapta(i);
        if(i >= k)
            s += v[d[st]];
    }

    g << s <<'\n';


    return 0;
}