Pagini recente » Cod sursa (job #2961674) | Cod sursa (job #319621) | Cod sursa (job #36439) | Cod sursa (job #2880952) | Cod sursa (job #236665)
Cod sursa(job #236665)
#include <stdio.h>
#define maxn 5000005
struct deque
{
int e, v;
};
int n, k;
deque q [maxn];
long long res ()
{
int i, p, u, a;
long long s;
scanf ("%d%d", &n, &k);
p=u=1;
q [p].e=1;
scanf ("%d", &q [p].v);
for (i=2; i<=k; ++i)
{
scanf ("%d", &a);
while (a < q [u].v && u >= p)
--u;
q [++u].e=i;
q [u].v=a;
}
s=q [p].v;
for (i=k+1; i<=n; ++i)
{
scanf ("%d", &a);
while (i-q [p].e >= k)
++p;
while (a < q [u].v && u >= p)
--u;
q [++u].e=i;
q [u].v=a;
s+=q [p].v;
}
return s;
}
int main ()
{
freopen ("deque.in", "r", stdin);
freopen ("deque.out", "w", stdout);
printf ("%lld\n", res ());
return 0;
}