Cod sursa(job #2833974)

Utilizator ililogIlinca ililog Data 16 ianuarie 2022 09:31:11
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include<deque>
#include<iostream>
#include<fstream>
using namespace std;

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

int n, k;
long long s;

struct element{
    int val;
    int poz;
};

deque<element> mydeque;

int main() {
    
    fin >> n >> k;
    
    int nr;
    for (int i = 1; i<=n; i++) {
        fin >> nr;
        
        while(!mydeque.empty() && mydeque.front().poz < i-k+1) {
            mydeque.pop_front();
        }
        
        while(!mydeque.empty() && mydeque.back().val > nr) {
            mydeque.pop_back();
        }
        
        element x = {nr, i};
        
        mydeque.push_back(x);
        
        if (i>=k) {
            s += mydeque.front().val;
        }
    }
    
    fout << s;
    
    return 0;
}