Pagini recente » Cod sursa (job #1198432) | Cod sursa (job #254911) | Cod sursa (job #162112) | Cod sursa (job #147148) | Cod sursa (job #1388229)
#include<stdio.h>
#define MAXN 5000005
FILE *f=fopen("deque.in","r"), *g=fopen("deque.out","w");
long int Q[MAXN], N, K, v[MAXN];
long long int S=0;
void Citire(){
long int i;
fscanf(f,"%ld %ld\n",&N,&K);
for(i=1;i<=N;i++)
fscanf(f,"%ld",&v[i]);
}
void Rezolvare(){
long int p, u, i;
p = 1; u = 1; Q[1] = 1;
if( K==1 )
S += v[1];
for(i=2;i<=N;i++){
while( p <= u && v[ Q[u] ] > v[i] )
u--;
Q[++u] = i;
if( Q[p] == i-K )
p++;
if( i >= K )
S += v[ Q[p] ];
}
fprintf(g,"%lld\n",S);
}
int main(){
Citire();
Rezolvare();
return 0;
}