Cod sursa(job #3127191)

Utilizator bivol_mihaiBivol Mihai bivol_mihai Data 7 mai 2023 13:18:26
Problema Deque Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;

long calculate_min(deque<long> deque){
    long min = deque.at(0);
    for(auto p = deque.begin(); p != deque.end(); ++p){
        if(*p < min){min = *p;}
    }
    return min;
}
int main(){
    deque<long> deque;
    int N,K; // N <= 5.000.000, 1 <= K <= N
    long sum = 0;
    ifstream fin("deque.in");
    ofstream fout("deque.out");

    fin>>N>>K;
    long x;
    //K = elements in deque, N = total numbers
    for(int i = 0; i < K; i++){ // first , we put numbers in deque

        fin>>x;
        deque.push_back(x);
    }
    //then, for the other numbers N-K, we calculate the min , pop first and push next
    
    for(int i = 0; i < N-K;i++){
        long min = calculate_min(deque);
        deque.pop_front();

        fin>>x;
        deque.push_back(x);
        sum+=min;
    }
    long min = calculate_min(deque);
    sum+=min;
    fout<<sum;

    return 0;
}