Cod sursa(job #3135444)

Utilizator DariusGhercaDarius Gherca DariusGherca Data 3 iunie 2023 12:02:32
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <climits>
#define cout df
using namespace std;
//ofstream df("dbg.out");
const int N = 5e6 + 10;
int dq[N], v[N];
int main()
{
    int n, k;
    ifstream f("deque.in");
    f >> n >> k;
    for(int i = 1; i <= n; i++){
        f >> v[i];
    }
    long long sum = 0;
    int top, bot;
    top = 0;
    bot = 0;
    for(int i = 1; i <= n; i++){
         while(top <= bot && v[i] <= v[dq[bot]])
            bot--;
        bot++;
        dq[bot] = i;
        if(dq[top] == i-k)
            top++;
        if(i >= k)
            sum += v[dq[top]];
    }
    //cout << m.get_min();
    ofstream g("deque.out");
    g << sum;
    return 0;
}