Pagini recente » Cod sursa (job #2911038) | Cod sursa (job #2633015) | Cod sursa (job #2094514) | Cod sursa (job #503000) | Cod sursa (job #804277)
Cod sursa(job #804277)
#include <stdio.h>
#include <stdlib.h>
int n,k,v[5000001],dq[5000001],dr=0,st=1,s=0;
void stanga (int i)
{
if (i-dq[st]==k)
st++;
}
void dreapta(int i)
{
while (dr>=st && v[i]<=v[dq[dr]])
dr--;
dq[++dr]=i;
}
int main()
{
int i;
FILE *in,*out;
in=fopen("deque.in","r");
out=fopen("deque.out","w");
fscanf (in,"%d%d",&n,&k);
for (i=1;i<=n;i++)
fscanf (in,"%d",&v[i]);
for (i=1;i<k;i++)
dreapta(i);
for (i=k;i<=n;i++)
{
stanga(i);
dreapta(i);
s+=v[dq[st]];
}
fprintf (out,"%d",s);
return 0;
}