Pagini recente » Cod sursa (job #677911) | Cod sursa (job #3185117) | Cod sursa (job #2479420) | Cod sursa (job #2569416) | Cod sursa (job #1044588)
#include<iostream>
#include<cstdio>
using namespace std;
long long dq[5000000], v[5000000];
int main()
{
FILE *fin, *fout;
fin=fopen("deque.in","r");
fout=fopen("deque.out","w");
long long n, i, s=0, k, prim, ultim;
fscanf(fin, "%lld %lld", &n, &k);
for(i=0; i<n; i++)
fscanf(fin, "%lld", &v[i]);
prim=1;
ultim=0;
ultim++;
dq[ultim]=0;
for(i=1; i<n; i++)
{
while(v[i]<v[dq[ultim]] && prim<=ultim)
{
ultim--;
}
ultim++;
dq[ultim]=i;
if(dq[prim]==i-k)
prim++;
if(i>=k-1)
s+=v[dq[prim]];
}
fprintf(fout, "%lld", s);
}