Cod sursa(job #3359502)

Utilizator octavP18Podan Octvavin octavP18 Data 29 iunie 2026 12:43:26
Problema Deque Scor 25
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>

#include <fstream>

#include <map>

#include <algorithm>

#include <vector>

#include <deque>

using namespace std;

#define all(x) x.begin(), x.end()
#define fs first
#define sc second

using namespace std;

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

const int nmax = 5e6;

deque<int> deq;
int v[nmax + 5];
int N, K;

int main() {

	fin >> N >> K;
	for (int i = 1; i <= N; ++i) {
		fin >> v[i];
		if (i <= K) {
			while (deq.size() and v[deq.back()] > v[i]) {
				deq.pop_back();
			}
			deq.push_back(i);
		}
	}
	int sum = 0;
	for (int i = K + 1; i <= N; ++i) {
		sum += v[deq.front()];
		while (deq.size() and deq.front() < i - K + 1) deq.pop_front();
		while (deq.size() and v[deq.back()] > v[i]) {
			deq.pop_back();
		}
		deq.push_back(i);
	}
	fout << sum + v[deq.front()];
}