Pagini recente » Cod sursa (job #1866850) | Cod sursa (job #468197) | Cod sursa (job #1655212) | Cod sursa (job #1295822) | Cod sursa (job #1053082)
#include <deque>
#include <stdio.h>
#include <stdlib.h>
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
std:: deque <int> mydeque;
int n,k;
int *a;
long long s = 0;
scanf("%d%d",&n,&k);
a=(int *)malloc(n*sizeof(int));
for(int i=0;i<n;i++){
scanf("%d",&(a[i]));
while(!mydeque.empty() && a[mydeque.back()] > a[i])
mydeque.pop_back();
mydeque.push_back(i);
if(i>=k-1){
s+=a[mydeque.front()];
if(mydeque.front() == i+1-k)
mydeque.pop_front();
}
}
printf("%ld",s);
fclose(stdin);
fclose(stdout);
return 0;
}