Pagini recente » Cod sursa (job #1239501) | Cod sursa (job #1149696) | Cod sursa (job #128765) | Cod sursa (job #490419) | Cod sursa (job #3169225)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int a[5000001],dq[5000001];
void elimst(int i, int k, int st)
{
if(i-dq[st]==k)
++st;
}
void elimdr(int i, int st, int dr)
{
while(st<=dr&&a[dq[dr]]>=a[i])
--dr;
dq[dr++]=i;
}
int main()
{
int n,k,st=0,dr=0;
long long s=0;
fin >> n >> k;
for(int i=1;i<=k;++i)
{
fin >> a[i];
elimst(i, k, st);
elimdr(i, st, dr);
}
s=a[dq[st]];
for(int i=k+1;i<=n;++i)
{
fin >> a[i];
elimst(i, k, st);
elimdr(i, st, dr));
s+=a[dq[st]];
}
fout << s;
return 0;
}