Pagini recente » Cod sursa (job #410313) | Cod sursa (job #2720908) | Cod sursa (job #1354877) | Cod sursa (job #862461) | Cod sursa (job #1359994)
#include <fstream>
#include <cstdio>
#define NMAX 5000002
using namespace std;
ofstream fout("deque.out");
int n,k,poz,j,inc,sf,x;
long long s;
struct dequ{int poz,val;} a[NMAX];
int main()
{
freopen("deque.in","r",stdin);
scanf("%d%d",&n,&k);
inc=1,sf=1; a[1].poz=1;
scanf("%d",&a[1].val);
for(int i=2;i<=k;i++)
{
scanf("%d",&x);
while(x<a[sf].val && sf>=inc) sf--;
a[++sf].val=x; a[sf].poz=i;
}
s=a[inc].val;
for(int i=k+1;i<=n;i++)
{
scanf("%d",&x);
while(i-k>=a[inc].poz) inc++;
while(x<a[sf].val && sf>=inc) sf--;
a[++sf].val=x; a[sf].poz=i;
s=s+a[inc].val;
}
fout<<s<<'\n';
return 0;
}