Cod sursa(job #1320354)

Utilizator retrogradLucian Bicsi retrograd Data 17 ianuarie 2015 21:45:11
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<fstream>
#include<deque>

using namespace std;

typedef int64_t var;

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

deque<var> Q;
deque<var> NUM;

int main() {
    var n, k, i, x;
    fin>>n>>k;
    for(i=1; i<=k; i++) {
        fin>>x;
        NUM.push_back(x);
        while(!Q.empty() && x < Q.back()) {
            Q.pop_back();
        }
        Q.push_back(x);
    }
    var sum = Q.front();
    for(; i<=n; i++) {
        if(NUM.front() == Q.front())
            Q.pop_front();
        NUM.pop_front();
        fin>>x;
        NUM.push_back(x);
        while(!Q.empty() && x < Q.back()) {
            Q.pop_back();
        }
        Q.push_back(x);

        sum += Q.front();
    }

    fout<<sum;
    return 0;
}