Cod sursa(job #652591)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 25 decembrie 2011 11:21:54
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
using namespace std;
int deq[5000003],i,n,k,nr,p=1,u=1,v[5000003];
long long S;
int main()
{
	freopen ("deque.in","r",stdin);freopen("deque.out","w",stdout);
	scanf("%ld %ld",&n,&k);
	for(i=1;i<=n;i++) scanf("%ld",&v[i]);
	p=1;u=1;
	for(i=1;i<=n;i++)//cand elimin lucrez pe pozitiile elementului di coada,deci in coada retin pozitiile elementelor minime 
	{
		 if(i-deq[p]>=k)p++;
		for(;u>=p && v[i]<=v[deq[u]];u--);//elimin elementele nefavorabile pt secventele urmatoare
		 deq[++u]=i;
		 if(i>=k) S+=v[deq[p]]; //printf("%d ",v[deq[p]]);}
	}
	
	printf("%ld",S);
return 0;}