Pagini recente » Cod sursa (job #751769) | Cod sursa (job #47769) | Cod sursa (job #460095) | Cod sursa (job #1279303) | Cod sursa (job #652591)
Cod sursa(job #652591)
#include<cstdio>
using namespace std;
int deq[5000003],i,n,k,nr,p=1,u=1,v[5000003];
long long S;
int main()
{
freopen ("deque.in","r",stdin);freopen("deque.out","w",stdout);
scanf("%ld %ld",&n,&k);
for(i=1;i<=n;i++) scanf("%ld",&v[i]);
p=1;u=1;
for(i=1;i<=n;i++)//cand elimin lucrez pe pozitiile elementului di coada,deci in coada retin pozitiile elementelor minime
{
if(i-deq[p]>=k)p++;
for(;u>=p && v[i]<=v[deq[u]];u--);//elimin elementele nefavorabile pt secventele urmatoare
deq[++u]=i;
if(i>=k) S+=v[deq[p]]; //printf("%d ",v[deq[p]]);}
}
printf("%ld",S);
return 0;}