Cod sursa(job #2726241)

Utilizator HadircaDionisieHadirca Dionisie HadircaDionisie Data 20 martie 2021 15:25:04
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int n, k;
long long sum;
int st,dr;

int a[5000001];
int deque[5000001];

int main()
{

	fin >> n >> k;


	for (int i = 1; i <= n; i++) {
		int x;
		fin >> x;
		a[i] = x;
	}
	
	dr = 1;
	st = 0;

	for (int i = 1; i <= n; i++) {
		while (dr <= st && a[i] <= a[deque[st]])
			st--;
		deque[++st] = i;
		if (deque[dr] == i - k)
			dr++;
		if (i >= k) 
			sum += a[deque[dr]];
	}

	fout << sum;
	return 0;

}