Pagini recente » Cod sursa (job #3189309) | Cod sursa (job #3149710) | Cod sursa (job #1412215) | Cod sursa (job #3241410) | Cod sursa (job #990441)
Cod sursa(job #990441)
#include <cstdio>
using namespace std;
int q[5000005],poz[5000005];
int main()
{
int n,k,x,pr,ul,i;
long long sol;
freopen ("deque.in","r",stdin);
freopen ("deque.out","w",stdout);
scanf("%d%d", &n,&k);
sol=0;
q[0]=-20000000;pr=1;ul=0;
for(i=1;i<=k;i++)
{
scanf("%d", &x);
while(pr<=ul && x<=q[ul])
ul--;
q[++ul]=x;
poz[ul]=i;
}
sol+=q[pr];
for(i=k+1;i<=n;i++)
{
scanf("%d", &x);
while((poz[pr]+k)<(i+1))
pr++;
while(pr<=ul && x<=q[ul])
ul--;
q[++ul]=x;
poz[ul]=i;
sol+=q[pr];
}
printf("%lld\n", sol);
return 0;
}