Cod sursa(job #1046788)

Utilizator BuseSorinFMI Buse Sorin-Marian BuseSorin Data 3 decembrie 2013 15:42:43
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>
using namespace std;
#define MAX 5000000
int V[MAX];
int deque[MAX];

int main(){
	ifstream f("deque.in");
	ofstream cout("deque.out");
	int n, k;
	f >> n >> k;
	int front = 0;
	int back = -1;
	long long s = 0;

	for (int i = 0; i<n; i++){
		
		f>>V[i];
	}
	k--;
	for (int i = 0; i<n; i++){
		while (front<=back && V[i] <= V[deque[back]]){
			back--;
		}
		deque[++back] = i;
		if (deque[front] == i - k - 1){
			front++;
		}
		if (i >= k){
			s += V[deque[front]];
		}

	}
	cout << s;
	return 0;
}