Pagini recente » Cod sursa (job #2907441) | Cod sursa (job #2067179) | Cod sursa (job #7279) | Cod sursa (job #3256163) | Cod sursa (job #253000)
Cod sursa(job #253000)
#include<stdio.h>
#define NMAX 5000010
int n,k,i,p,u,v[NMAX],deque[NMAX];
long long sol;
int main(){
FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");
fscanf(f,"%d %d",&n,&k);
for(i=1; i<=n; i++)
fscanf(f,"%d",&v[i]);
p=1; u=1;
deque[1] = v[i];
for(i=1; i<=n; i++){
while(deque[p] <= i-k && p<=u )
p++;
while(v[deque[u]] >= v[i] && p<=u)
u--;
deque[++u]=i;
if(i>=k)
sol+=(long long)v[deque[p]];
}
fprintf(g,"%lld",sol);
fclose(f);
fclose(g);
return 0;
}