Pagini recente » Utilizatori inregistrati la Winter Challenge 2020 | Cod sursa (job #145594) | Cod sursa (job #303793) | Cod sursa (job #3266447) | Cod sursa (job #2228625)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 5000000
int v[NMAX], deque[NMAX], start, stop;
void push( int poz ) {
while ( start < stop && v[deque[stop - 1]] > v[poz] )
stop--;
deque[stop++] = poz;
}
int main() {
FILE *fin, *fout;
fin = fopen( "deque.in", "r" );
fout = fopen( "deque.out", "w" );
int n, k, i;
fscanf( fin, "%d%d", &n, &k );
for ( i = 0; i < k; i++ ) {
fscanf( fin, "%d", &v[i] );
push( i );
}
long long suma = v[deque[start]];
for ( i = k; i < n; i++ ) {
fscanf( fin, "%d", &v[i] );
if ( deque[start] == i - k )
start++;
push( i );
suma += v[deque[start]];
}
fprintf( fout, "%lld\n", suma );
fclose( fin );
fclose( fout );
return 0;
}