Pagini recente » Cod sursa (job #2119864) | Cod sursa (job #2987068) | Profil funkydvd | Cod sursa (job #3231514) | Cod sursa (job #1594078)
#include <fstream>
#include <cstdio>
#define NMax 5000005
using namespace std;
int n,k;
int a[NMax],q[NMax];
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i = 1; i <= n; ++i){
scanf("%d",&a[i]);
}
long long s = 0;
int fr = 1, bk = 0;
for(int i = 1; i <= n; ++i){
while(fr <= bk && a[i] <= a[q[bk]]){
bk--;
}
q[++bk] = i;
if(q[fr] == i - k){
fr++;
}
if(i >= k)
s += a[q[fr]];
}
printf("%lld",s);
return 0;
}