Pagini recente » Cod sursa (job #744992) | Cod sursa (job #2801374) | Cod sursa (job #2864929) | Cod sursa (job #1467415) | Cod sursa (job #2737940)
//Ilie Dumitru
#include<cstdio>
#include<deque>
int A[5000005];
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
std::deque<int> dq;
int i, N, K;
long long int s=0;
scanf("%i%i", &N, &K);
for(i=0;i<N;++i)
scanf("%i", &A[i]);
fclose(stdin);
for(i=0;i<N;++i)
{
while(!dq.empty() && A[dq.back()]>A[i])
dq.pop_back();
dq.push_back(i);
if(dq.front()==i-K)
dq.pop_front();
if(i+1>=K)
s+=A[dq.front()];
}
printf("%lli", s);
fclose(stdout);
return 0;
}