Pagini recente » Cod sursa (job #862790) | Cod sursa (job #375640) | Cod sursa (job #174380) | Cod sursa (job #242230) | Cod sursa (job #625921)
Cod sursa(job #625921)
#include <stdio.h>
int N,K,A[5000000],Deque[5000000],start=1,end=0;
long long suma;
//void deque()
//{
//
//for(int i=1;i<=N;i++)
//{
// while(start<=end && A[i]<=A[Deque[end]])
// end--;
//
// Deque[++end]=i;
// if(Deque[end]-Deque[start]==K)
// start++;
//
// if(i>=K)
// suma+=A[Deque[start]];
//
//
//}
//
//}
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d",&N);
scanf("%d",&K);
//for(int i=1;i<=N;i++)
//scanf("%d",&A[i]);
for(int i=1;i<=N;i++)
{
scanf("%d",&A[i]);
while(start<=end && A[i]<=A[Deque[end]])
end--;
Deque[++end]=i;
if(Deque[end]-Deque[start]==K)
start++;
if(i>=K)
suma+=A[Deque[start]];
}
//deque();
printf("%lld",suma);
fclose(stdin);
fclose(stdout);
return 0;
}