Pagini recente » Cod sursa (job #1883119) | Cod sursa (job #3253853) | Cod sursa (job #2496187) | Cod sursa (job #1646544) | Cod sursa (job #240660)
Cod sursa(job #240660)
#include <stdio.h>
struct stiva {long m;long p;};
long n,k,i,p,q,a[5000002];
long long sol;
stiva st[5000002];
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",&a[i]);
p=1;q=0;
for (i=1;i<=n;++i){
while (a[i]<st[q].m&&q>=p)q--;
st[++q].m=a[i];
st[q].p=i;
while (i-st[p].p+1>k)p++;
if (i>=k)sol+=st[p].m;
}
printf("%lld\n",sol);
return 0;
}