Cod sursa(job #2451482)

Utilizator urweakurweak urweak Data 26 august 2019 22:26:16
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#include <iostream>
#define nmax 5000001
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");

int N, K, a[nmax], deque[nmax];

int main(){

	in >> N >> K;

	for(int i = 1; i<=N; i++)
		in >> a[i];

 	int Front = 1, Back = 0;
	long long sum = 0;
	for(int i = 1; i<=N; i++){
		while(Front <= Back && a[i] <= a[deque[Back]]) Back--;
		deque[++Back] = i;
		if(deque[Front] == i-K) Front++;
		if(i >= K) sum+= a[deque[Front]];
	}
	out << sum;
	return 0;
}