Cod sursa(job #1746440)

Utilizator irinapatularuPatularu Irina irinapatularu Data 23 august 2016 12:24:32
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
# include <iostream>
# include <fstream>
# include <deque>

using namespace std;

deque<int> deck;
int vector[50000001];

int rezultat(int n, int k){

	int sum = 0;

	for(int i = 1; i <= n; i++){

		while(!deck.empty() && vector[i] <= vector[deck.back()])
			deck.pop_back();
		deck.push_back(i);

		if(deck.front() == i - k)
			deck.pop_front();
		if(i >= k)
			sum += vector[deck.front()];
	}

	return sum;
}
int main(){
	int n, k;
	ifstream f("deque.in");
	ofstream g("deque.out");

	f >> n >> k;
	for(int i = 1; i <= n; i++)
		f >> vector[i];
	f.close();

	g << rezultat(n, k);
	g.close();
	return 0;
}