Cod sursa(job #846276)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 1 ianuarie 2013 19:52:46
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
#include<queue>

using namespace std;

const int Nmax = 5000001;

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

int N, K, V[Nmax];
deque<int> D;
long long rez;

int main() {

    int i;

    f>>N>>K;
    for(i=1; i<=N; ++i)
        f>>V[i];

    for(i=1; i<=N; ++i) {
        while(!D.empty() && V[D.back()] >= V[i])
            D.pop_back();
        D.push_back(i);
        if(D.front() == i-K)
            D.pop_front();
        if(i>=K)
            rez+=V[D.front()];
    }

    g<<rez<<"\n";

    f.close(); g.close();

    return 0;
}