Cod sursa(job #3351234)

Utilizator sefulafemeiemanuel sefulafemei Data 17 aprilie 2026 18:35:06
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
/*
Inteleg problema 

1. Aleg directie (dp / graf / greedy / etc.)
2. GANDESC 20-30 MIN (exemple mici, brute force, pattern)  (NU abandonez rapid) 
3. Blocat  =>  identific exact unde
4. Vad DOAR ideea (fara cod) => trebuie sa poti explica tot
5. Implementez SINGUR pseudocod -> cod, nu te poti bloca
6. daca esti prost codul (te uiti, inchizi, rescrii din memorie)
7. Refac problema fara ajutor peste *ceva* timp

NU copia cod
NU sari peste gandire
Blocajul = progres
*/
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int n,k;
int v[5000005];
ifstream f ("deque.in");
ofstream g ("deque.out");

int main(){
    f >> n >> k;

    for(int i = 0; i < n; i++)
        f >> v[i];

    deque<int>  d;
    ll s = 0;;

    for(int i = 0; i < n; i++){
        while(!d.empty() && d.front()  < i - k +1)
            d.pop_front();

        while(!d.empty() && v[d.back()] > v[i])
            d.pop_back();
        
        d.push_back(i);

        if(i >= k -1)  
            s+= v[d.front()];
    }
    
    g << s;
    return 0;
}