Pagini recente » Cod sursa (job #46056) | Cod sursa (job #1698396) | Cod sursa (job #2017818) | Cod sursa (job #505004) | Cod sursa (job #672571)
Cod sursa(job #672571)
#include<stdio.h>
#include<cmath>
using namespace std;
struct POINT
{
int x, i;
};
POINT q[5000001];
int n, x, u, p, k;
long long min;
int main()
{
int i;
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &n, &k);
scanf("%d", &q[1].x);
q[1].i=1;
p=1;
u=1;
for(i=2; i<=n; i++)
{
scanf("%d", &x);
while(p<=u && q[u].x>=x)
{
u--;
}
q[++u].x=x;
q[u].i=i;
if(i-q[p].i==k)
{
p++;
}
if(i>=k)
{
min+=q[p].x;
}
}
printf("%lld", min);
return 0;
}