Pagini recente » Cod sursa (job #552400) | Cod sursa (job #22068) | Cod sursa (job #3130634) | Cod sursa (job #1592136) | Cod sursa (job #579110)
Cod sursa(job #579110)
const f = 'secventa.in'; g = 'secventa.out';
var
max, k, n, i : longint;
poz, ls, ld : longint;
v, d : array[0..500005] of longint;
buf, buf1 : array[1..1 shl 15] of char;
begin
assign( input,f ); reset( input );
assign( output,g ); rewrite( output );
settextbuf( input, buf );
settextbuf( output, buf1 );
readln( n, k );
for i := 1 to n do read( v[i] );
ls := 1; ld := 0;
{for i := 1 to k - 1 do begin
while ( ls <= ld ) and ( v[i] <= v[ d[ld] ] ) do dec( ld );
inc( ld );
d[ld] := i;
end;
}
max := -31000;
for i := 1 to n do begin
while (ls <= ld ) and ( v[i] <= v[ d[ld] ] ) do dec( ld );
inc ( ld ); d[ld] := i;
if d[ls] = i-k then inc ( ls );
//while (ls <= ld ) and ( d[ls] < i - k + 1 ) do inc( ls );
if ( i >= k ) and ( v[ d[ls] ] > max ) then begin
max := v[ d[ls] ] ;
poz := i;
end;
end;
writeln( poz - k + 1,' ',poz,' ',max );
end.