Pagini recente » Cod sursa (job #2310632) | Cod sursa (job #426107) | Cod sursa (job #3271885) | Cod sursa (job #2986357) | Cod sursa (job #2589406)
#include <bits/stdc++.h>
using namespace std;
FILE *fin, *fout;
int v[5000001];
int dq[5000001];
int main()
{
fin=fopen("deque.in", "r");
fout=fopen("deque.out", "w");
int n, k, front=1, back=0, s=0;
fscanf(fin, "%d%d", &n, &k);
for(int i=1; i<=n; i++)
{
fscanf(fin, "%d", &v[i]);
while(front<=back && v[i]<=v[dq[back]])
{
back--;
}
dq[++back]=i;
if(dq[front]==i-k)
{
front++;
}
if(i>=k)
{
s+=v[dq[front]];
}
}
fprintf(fout, "%d ", s);
return 0;
}