Pagini recente » Cod sursa (job #3324294) | Cod sursa (job #1870899) | Cod sursa (job #1761083) | Cod sursa (job #3318338) | Cod sursa (job #3323565)
#include <stdio.h> // am sters stdlib ca nu avem nevoie de el
int v[5000000],deq[5000000];
int main()
{
FILE *fin,*fout;
long long sum;
int n,k,i,poz,st;
fin=fopen("deque.in","r");
fscanf(fin,"%d%d",&n,&k);
st=1;
poz=0;
for (i=1;i<k;i++){
fscanf(fin,"%d",&v[i]);
while(st<=poz && v[deq[poz]]>v[i])
poz--;
deq[++poz]=i;
}
sum=0;
for (i=k;i<=n;i++){
fscanf(fin,"%d",&v[i]);
while(st<=poz && v[deq[poz]]>v[i])
poz--;
deq[++poz] = i;
while(deq[st] < i-k+1)
st++;
sum += v[deq[st]];
}
fclose(fin);
fout=fopen("deque.out","w");
fprintf(fout,"%lld",sum);
fclose(fout);
return 0;
}