Cod sursa(job #582823)

Utilizator costyv87Vlad Costin costyv87 Data 16 aprilie 2011 02:21:17
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <cstdio>
FILE *f,*g;
int a[5000100];
int b[5000100];
long long sum=0;
int i,st,dr,k,n;


int main() {
f=fopen("deque.in","r");
g=fopen("deque.out","w");

fscanf(f,"%d%d",&n,&k);

for (i=1;i<=n;i++) {
	fscanf(f,"%d",&a[i]);
	}
st=1; dr=0;

for (i=1;i<=n;i++) {
	while (st<=dr && a[i]<=a[b[dr]])
		dr--;
	b[++dr]=i;
	
	if (b[st]==i-k) st++;
	
	if (i>=k) sum =(long long)sum+ a[b[st]];
	}

fprintf(g,"%lld\n",sum);

return 0;
}