Pagini recente » Cod sursa (job #151726) | Cod sursa (job #2023683) | Cod sursa (job #1292828) | Cod sursa (job #1295114) | Cod sursa (job #990438)
Cod sursa(job #990438)
#include <cstdio>
using namespace std;
int q[5000005],poz[5000005];
int main()
{
int sol,n,k,x,pr,ul,i;
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("%d\n", sol);
return 0;
}