Cod sursa(job #1723971)

Utilizator dcutitoiuCutitoiu Adrian-Nicolae dcutitoiu Data 1 iulie 2016 22:35:52
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
#include <iterator>
#include <deque>
#include <cmath>
using namespace std;

struct element{
    int val;
    int poz;
};

int main () {

    int N, K, suma = 0;
    element e;
    ifstream in("deque.in");
    ofstream out("deque.out");

    in >> N >> K;
    deque<element> subsir;

    for(int i = 1; i <= N; i++){
        in >> e.val;
        e.poz = i;
        while(!subsir.empty() && e.val <= subsir.back().val){
            subsir.pop_back();
        }
        subsir.push_back(e);

        if(i < K)
            continue;

        if(i - K == subsir[0].poz)
            subsir.pop_front();

        suma += subsir[0].val;
    }

    out << suma;
    return 0;
}