Cod sursa(job #632671)

Utilizator DaicuDaicu Alexandru Daicu Data 11 noiembrie 2011 22:52:17
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<stdio.h>
#include<deque>

using namespace std;

int lista_smen[5000005];
int poz[5000005];
int n,k;
int main(){
	freopen("deque.in","r",stdin);
	freopen("deque.out","w",stdout);
	scanf("%d", &n);
	scanf("%d", &k);
	
	long long s=0;
	int x;
	int inc=0;
	int sf=0;
	
	for(int i=1;i<=n;i++){
		
		scanf("%d", &x);
  
			while(x<=lista_smen[sf]&&sf>=inc){
			
			sf--;
			}
			
			
			sf++;
			lista_smen[sf]=x;
			poz[sf]=i;
			if(i-poz[inc]==k){
				inc++;
				
			}
			if(i>=k){
				
				s=s+lista_smen[inc];
			}	
			

		
	}
	
	printf("%lld", s);
	return 0;
	
}