Cod sursa(job #3358926)

Utilizator ecaterinaEcaterina Stefanescu ecaterina Data 22 iunie 2026 02:22:38
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <deque>
#include <algorithm>

using namespace std;

#define NMAX 5000005

int v[NMAX];
deque<int> q;

int main() {
    ifstream fin("deque.in");
    ofstream fout("deque.out");

    int n, i, k;
    long long int sum;

    fin >> n >> k;
    for (i=0; i<n; i++) {
        fin >> v[i];
    }

    sum = 0;
    q.push_back(v[0]);
    for (i=1; i<k; i++) {
        while (q.size()>0 && v[i]<q.back()) {
            q.pop_back();
        }
        q.push_back(v[i]);
    }
    sum = sum + 1LL*q.front();

    for (i=k; i<n; i++) {
        while (q.size()>0 && v[i]<q.back()) {
            q.pop_back();
        }
        q.push_back(v[i]);
        if (q.front() == v[i-k]) {
            q.pop_front();
        }
        sum = sum + 1LL*q.front();
    }
    fout << sum;

    fin.close();
    fout.close();
    return 0;
}