Cod sursa(job #2972770)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 30 ianuarie 2023 11:49:54
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include<fstream>
#include<iostream>
#include<climits>
#include<algorithm>
#include<cstring>
#include<cmath>
#include <vector>
#include <queue>
#include <iomanip>

#define DIM 5000000

using namespace std;

ifstream f("deque.in");
ofstream g("deque.out");

//ifstream f("in.in");
//ofstream g("out.out");

long long n,v[DIM+5],k,sol=0;

deque <int> dq;

int main(){

    f>>n>>k;
    for(long long i=1;i<=n;i++){
        f>>v[i];

        if(!dq.empty() && dq.front() == i-k){
            dq.pop_front();
        }

        while(!dq.empty() && v[i]<v[dq.back()]){
            dq.pop_back();
        }
        dq.push_back(i);

        if(i>=k){
            sol+=v[dq.front()];
        }
    }

    g<<sol;

    f.close();
    g.close();
    return 0;
}