Cod sursa(job #3128217)

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

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

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

    in.open("deque.in");

    in>>n>>k;

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

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

    in.close();

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

    return 0;
}