Cod sursa(job #2673761)

Utilizator gavra_bogdanBogdan Gavra gavra_bogdan Data 17 noiembrie 2020 17:32:21
Problema Deque Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <deque>
#define ll long long
#define pi std::pair<ll,int>

std::deque<pi>dq;

int main() {
	std::ifstream fin("deque.in");
	std::ofstream fout("deque.out");
	std::ios::sync_with_stdio(false);
	fin.tie(0);
	fout.tie(0);
	ll n, k, c, s = 0;
	fin >> n >> k;
	for (int i = 1; i <= n; i++) {
		fin >> c;
		if (!dq.empty() and dq.front().second + k - 1 < i) dq.pop_front();
		while (!dq.empty() and dq.back().first >= c) dq.pop_back();
		dq.push_back({ c, i });
		if(i>=k) s += dq.front().first;
	}
	fout << s;
}