Pagini recente » Cod sursa (job #1057745) | Cod sursa (job #596959) | Cod sursa (job #409660) | Cod sursa (job #1682036) | Cod sursa (job #572263)
Cod sursa(job #572263)
#include<cstdio>
#define nmax 5000001
using namespace std;
struct deque
{
int el,pos;
} A[nmax];
int N,k;
long long ST;
void solve();
void write();
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
solve();
write();
return 0;
}
void solve()
{
int i,in,sf,e,ok1;
scanf("%d%d",&N,&k);
in=sf=1;
scanf("%d",&e);
A[in].el=e;
A[in].pos=1;
for (i=2;i<=N;++i)
{
scanf("%d",&e);
if (A[in].pos<=i-k)
{
ST+=A[in].el;
++in;
}
while (A[sf].el>e&&sf>=in)
--sf;
++sf;
A[sf].pos=i;
A[sf].el=e;
}
ST+=A[in].el;
}
void write()
{
printf("%I64d\n",ST);
}