Pagini recente » Cod sursa (job #2328743) | Cod sursa (job #1009570) | Cod sursa (job #188866) | Cod sursa (job #1750476) | Cod sursa (job #811271)
Cod sursa(job #811271)
#include <cstdio>
#include <cstdlib>
FILE*f;
FILE*g;
long long A[5000001],deq[5000001];
int main()
{
long long s;
long long n,k,i,st,dr;
f=fopen("deque.in","r");
g=fopen("deque.out","w");
fscanf(f,"%d%d",&n,&k);s=0;
for (i=1;i<=n;i++)
fscanf(f,"%d",&A[i]);
st=1;dr=0;
for (i=1;i<=n;i++)
{ while ((A[i]<=deq[dr]) && (st<=dr))
dr--;
deq[++dr]=A[i];
if (deq[st]==A[i-k]) st++;
if (i>=k) s=s+deq[st];
}
fprintf(g,"%lld",s);
return 0;
}