Pagini recente » Cod sursa (job #2493083) | Monitorul de evaluare | Cod sursa (job #808664) | Monitorul de evaluare | Cod sursa (job #960106)
Cod sursa(job #960106)
#include<stdio.h>
#define MAXN 5000005
int a[MAXN], t[MAXN], p, q, n, m, i, x, k;
long long sum;
int main(){
freopen("deque.in", "rt", stdin);
freopen("deque.out", "wt", stdout);
scanf("%d %d", &n, &k);
p=q=0;
for(i=0; i<n; i++){
scanf("%d", &x);
while(p<q && (i-t[q-1]+1>k || a[q-1]>x))
--q;
while(p<q && i-t[p]+1>k)
++p;
a[q] = x;
t[q] = i;
q++;
if(i>=k-1)
sum=sum+a[p];
/*printf("PASUL %d, %d, %d:", i, p, q);
for(x=p; x<q; x++) printf("%d ", a[x]);
printf("\n");*/
}
printf("%lld\n",sum);
fclose(stdin);
fclose(stdout);
return 0;
}