Cod sursa(job #1633236)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 6 martie 2016 11:50:49
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
//============================================================================
// Name        : Deq.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <stdio.h>
#include <deque>
using namespace std;

struct elem{
	int i,x;
};
deque<elem> deq;
int n,k,x;
long long sum;

int main() {
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;++i){
		scanf("%d",&x);
		if(!deq.empty()){
			while(deq.back().x>=x){
				deq.pop_back();
				if(deq.empty())break;
			}
		}
		if(!deq.empty())
			if(deq.front().i<i-k+1)
				deq.pop_front();
		elem aux;
		aux.i=i;
		aux.x=x;
		deq.push_back(aux);
		if(i>=k-1)
			sum+=deq.front().x;
	}
	printf("%lld\n",sum);
	return 0;
}