Cod sursa(job #1597770)

Utilizator RazvanatorHilea Razvan Razvanator Data 12 februarie 2016 12:07:32
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <deque>
#define NMAX 5000010

using namespace std;

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

int v[NMAX];
int n,k;

long long s;

deque <int> deck;

void Read()
{
    fin>>n>>k;
    for (int i=1;i<=n;i++) fin>>v[i];
}

int main()
{

    Read();
    for (int i=1;i<=n;i++) {
        while (!deck.empty()&&v[i] <= v[deck.back()]) deck.pop_back();
        deck.push_back(i);
        if (deck.front()==i-k) deck.pop_front();
        if (i>=k) s+=v[deck.front()];
    }
    fout<<s;
}