Cod sursa(job #2699384)

Utilizator tibinyteCozma Tiberiu-Stefan tibinyte Data 24 ianuarie 2021 12:47:28
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <deque>
#include <vector>
#include <string>
#include <iomanip>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int main() {
	int n, k;
	cin >> n >> k;
	deque<long long> dq;
	vector<int> a(n + 1);
	long long suma = 0;
	for (int i = 1; i <= n; ++i)
		cin >> a[i];
	for (int i = 1; i <= n; ++i) {
		while (!dq.empty() && dq.front() > a[i]) {
			dq.pop_front();
		}
		dq.push_front(a[i]);
		if (i >= k) {
			suma += dq.back();
			if (dq.back() == a[i - k + 1]) {
				dq.pop_back();
			}
		}
	}
	cout << suma;
}