Cod sursa(job #3128214)

Utilizator CiprianHutanuHutanu Ciprian CiprianHutanu Data 9 mai 2023 00:01:55
Problema Deque Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <iostream>
#include <deque>

std::ifstream in;
std::ofstream out;

int main() {
    std::deque<int>deq, poz;
    int k, n, x, sum = 0;

    in.open("deque.in");

    in>>n>>k;

    in>>x;
    deq.push_back(x);
    poz.push_back(0);

    for(int i = 1; i < n; i++){
        in>>x;
        if(i - poz.front() >= k){
            deq.pop_front();
            poz.pop_front();
        }
        if(x > deq.back()){
            deq.push_back(x);
            poz.push_back(i);
        }
        else if(deq.back() > x){
            while(deq.back() > x and !deq.empty()){
                deq.pop_back();
                poz.pop_back();
            }
            deq.push_back(x);
            poz.push_back(i);
        }
        if(i >= k - 1)
          sum += deq.front();
    }

    in.close();

    out.open("deque.out");
    out<<sum;
    out.close();

    return 0;
}