Pagini recente » Cod sursa (job #2863654) | Cod sursa (job #3295334) | Cod sursa (job #2710678) | Cod sursa (job #1869886) | Cod sursa (job #847753)
Cod sursa(job #847753)
#include <stdio.h>
#include <stdlib.h>
#define nmax 5000000
int N , K ;
int deque[nmax] , v[nmax];
long long s = 0 , p , u ;
int main ()
{
FILE *fin , *fout ;
fin = fopen ( "deque.in" , "rt" );
fout = fopen ( "deque.out" , "wt" );
fscanf ( fin , "%d %d " , &N , &K );
p = 1 ;
u = 0;
for ( int a , i = 1 ; i <= N ; i++ )
{
fscanf ( fin , "%d" , v + i );
while ( v[i] <= v[deque[u]] && p <= u ) u--;
deque[++u] = i ;
if ( deque[u] - deque[p] == K ) p++;
if ( i >= K ) s += v[deque[p]];
}
//printf ( "suma:%d\n" , s );
fprintf ( fout , "%lld" , s );
fclose ( fin );
fclose ( fout );
return 0;
}