Cod sursa(job #1716841)

Utilizator mihai.constantinConstantin Mihai mihai.constantin Data 13 iunie 2016 19:53:29
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>
using namespace std;

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

#define dmax 5000005

int v[dmax];

int d[dmax];
int st, dr = -1;

int Sum;

int N, K;

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

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

    d[++dr] = i;
}

void read()
{
    int i, x;

    in >> N >> K;

    for(i = 1; i <= N; i++) in >> v[i];

    for(i = 1; i <= N; i++)
    {
        dreapta(i);
        stanga(i);

        if(i >= K) Sum += v[ d[st] ];
    }

    out << Sum;
}

int main()
{
    read();
    return 0;
}