Pagini recente » Cod sursa (job #354478) | Cod sursa (job #806171) | Cod sursa (job #2607077) | Cod sursa (job #3214073) | Cod sursa (job #582822)
Cod sursa(job #582822)
#include <cstdio>
FILE *f,*g;
int a[5000000];
int b[5000000];
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;
}