Cod sursa(job #3309857)

Utilizator aryanion arian matei aryan Data 9 septembrie 2025 21:53:21
Problema Deque Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <bits/stdc++.h>

int getmin(std::deque<int> x){
    int minim=x[0];
    for (std::deque<int>::iterator i=x.begin();i<x.end();++i){
        int nr=*i;
        minim=std::min(minim,nr);
    }
    return minim;
}

int main(){
    //file open
    
    std::ifstream fin("deque.in");
    std::ofstream fout("deque.out");
    
    std::deque<int> list;
    int64_t answer=0;
    int n,k;
    fin>>n>>k;
    //init
    for (int i=1;i<=k;++i){
        int temp;
        fin>>temp;
        list.push_back(temp);
    }
    
    int reminder=getmin(list);
    answer+=reminder;
    
    //after first init
    for (int i=k+1;i<=n;++i){
        int temp;
        fin>>temp;
        if (reminder==list.front())
        {
            list.pop_front();
            list.push_back(temp);
            reminder=getmin(list);
            answer+=reminder;
        } else {
            list.pop_front();
            list.push_back(temp);
            reminder=std::min(temp,reminder);
            answer+=reminder;
        }
            
    }
    fin.close();

    fout<<answer;

    return 0;
}