Pagini recente » Istoria paginii utilizator/john_kappa | Monitorul de evaluare | Istoria paginii utilizator/emilian_tabara | Istoria paginii utilizator/heyieiro | Cod sursa (job #847764)
Cod sursa(job #847764)
#include <cstdio>
#include <cstdlib>
#define nmax 500000
int N , k;
int deque[nmax] , v[nmax] , p , u , max = -30001;
int maxim ( int &a , int &b )
{
if ( a >= b ) return a;
else return b;
}
int main ()
{
FILE *fin , *fout ;
fin = fopen ( "secventa.in" , "rt" );
fout = fopen ( "secventa.out" , "wt" );
fscanf ( fin , "%d %d" , &N , &k );
p = 1 , u = 0 ;
for ( int 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 ) {
if ( max < v[deque[p]] ) max = v[deque[p]];
}
}
printf ( "%d\n" , max );
fprintf ( fout , "%d\n" , max );
fclose ( fin );
fclose ( fout );
return 0;
}