Cod sursa(job #2699547)

Utilizator IuliaDamianDamian Iulia Alexandra IuliaDamian Data 24 ianuarie 2021 22:03:39
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");

long long sum = 0;
int n, k, a[5000001];
deque <int> sir;

void elements(int x){
	while (!sir.empty()) {
        if (x >= sir.back()) {
            break;
        }
        sir.pop_back();
    }
    sir.push_back(x);
}

int main() {
    fin >> n >> k;
    for (int i = 1; i <= n; i++) {
        fin >> a[i];
    }
    for (int i = 1; i <= k; i++) {
        elements(a[i]);
    }
    sum += sir.front();
    for (int i = k + 1; i <= n; i++) {
        elements(a[i]);
        if (sir.front() == a[i - k]) {
            sir.pop_front();
        }
        sum += sir.front();
    }
    fout << sum;
}