Pagini recente » Cod sursa (job #2771262) | Cod sursa (job #3205179) | Cod sursa (job #2918711) | Cod sursa (job #273793) | Cod sursa (job #584453)
Cod sursa(job #584453)
#include<stdio.h>
#define dim 5000005
using namespace std;
int A[dim],deque[dim],i,front,back,n,k;
long long sum;
int main()
{
FILE *f=fopen("deque.in","r"), *g=fopen("deque.out","w");
fscanf(f,"%d %d",&n,&k);
for(i=1;i<=n;i++)
fscanf(f,"%d\n",&A[i]);
front = 1; back = 0;
for(i=1;i<=n;i++)
{
while(front <= back &&A[i]<=A[ deque[ back ] ])
back--;
deque[++back]=i;
if(deque[front] == i-k )
front++;
if(i>=k)
sum+= A[deque[front]];
}
fprintf(g,"%lld\n",sum);
fclose(f);
fclose(g);
return 0;
}