Cod sursa(job #2899198)

Utilizator disinfoion ion disinfo Data 8 mai 2022 10:15:07
Problema Deque Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <deque>
#define MAX 5000010
using namespace std;

deque<int> deck;

void push(int x){
	while(!deck.empty() && deck.back() > x){
		deck.pop_back();
	}
	deck.push_back(x);
}

int main(){
	ifstream fin;
	ofstream fout;
	fin.open("deque.in");
	fout.open("deque.out"); 
	int k, n, q, a, b;
	int v[MAX];
	long long sum = 0;

	fin >> n >> k;
	for(int i=0; i < k; ++i){
		fin >> v[i];
		push(v[i]);
	}
	for(int i=k; i < n; ++i){
		fin >> v[i];
		sum += deck.front();
		if(v[i - k] == deck.front())
			deck.pop_front();
		push(v[i]);
	}

	fout << sum + deck.front();

}