Cod sursa(job #631695)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 9 noiembrie 2011 16:56:16
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<cstdio>
#include<deque>
using namespace std;
FILE *in = fopen("deque.in", "r"), *out = fopen("deque.out", "w");

deque <int> lista, indice;
int n, k, s;

int main(){
	fscanf (in, "%d %d", &n, &k);
	int i, x;
	for (i = 1; i <= n; i++){
		fscanf(in, "%d", &x);
		while (!lista.empty() && x <= lista.back()) {fprintf(out, "%d ", lista.back()); lista.pop_back(); indice.pop_back();}
		lista.push_back(x);
		indice.push_back(i);
		if (indice.front() <= i - k) {lista.pop_front(); indice.pop_front();}
		if (i >= k)s += lista.front();
	}
	
	fprintf(out, "%d", s);
	return 0;
}