program min; const MAX = 50; type tpole = array [ 1 .. MAX ] of integer; function minpole( var p: tpole; velikost: integer ) : integer; const kolikaty = 3; type tkand = record hod: integer; je_nekon: boolean; end; tkandidati = array [ 1 .. kolikaty ] of tkand; var i, j, k: integer; kandi: tkandidati; begin for i := 1 to kolikaty do kandi[ i ].je_nekon := true; for i := 1 to velikost do begin j := 1; while ( j <= kolikaty ) and ( ( not kandi[ j ].je_nekon ) and ( kandi[ j ].hod <= p[ i ] ) ) do inc( j ); for k := kolikaty downto j + 1 do kandi[ k ] := kandi[ k - 1 ]; if j <= kolikaty then begin kandi[ j ].hod := p[ i ]; kandi[ j ].je_nekon := false; end; end; minpole := kandi[ kolikaty ].hod; end; var p: tpole; begin p[ 1 ] := 50; p[ 2 ] := 12; p[ 3 ] := 350; p[ 4 ] := 52; p[ 5 ] := 42; writeln( minpole( p, 5 ) ); end.