Pagini recente » Cod sursa (job #2533374) | Cod sursa (job #2102567) | Cod sursa (job #2242447) | prelungitoare | Cod sursa (job #819500)
Cod sursa(job #819500)
#include <cstdio>
using namespace std;
long p,u,a[5000000],deq[5000000],i,n,k;
long long sum;
int main()
{FILE *f1 = fopen("deque.in","r");
FILE *f2 = fopen("deque.out","w");
fscanf(f1,"%ld%ld",&n,&k);
for (i=1;i<=n;i++) fscanf(f1,"%ld",&a[i]);
p=1;u=0;sum=0;
for (i=1;i<=n;i++)
{while (p<=u && a[i]<=a[deq[u]]) u--;
deq[++u]=i;
if (deq[p]==i-k) p++;
if (i>=k) sum+=a[deq[p]];
}
fprintf(f2,"%lld",sum);
return 0;
}