Pagini recente » Borderou de evaluare (job #3124213) | Cod sursa (job #186929) | Cod sursa (job #828524) | Cod sursa (job #1066293) | Cod sursa (job #236529)
Cod sursa(job #236529)
#include <stdio.h>
#define Nmax 5000010
int D[Nmax],A[Nmax],i,j,u,p,N,K;
long long suma;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d", &N,&K);
for (i=1;i<=N;++i)
scanf("%d", &A[i]);
u=p=1;
for (i=1;i<=N;++i)
{
while (u<=p && A[i]<=A[D[p]])
p--;
p++;
D[p]=i;
while (D[u]==i-K)
u++;
if (i>=K)
//printf("%d\n", A[D[u]]);
suma+=A[D[u]];
}
printf("%lld", suma);
return 0;
}