program RandomExcluding;
const
MaxExcluded = 32;
type
TIntArray = array[1..MaxExcluded] of Integer;
function IsExcluded(num: Integer; excluded: TIntArray; size: Integer): Boolean;
var
i: Integer;
begin
IsExcluded := False;
for i := 1 to size do
if excluded[i] = num then
begin
IsExcluded := True;
Exit;
end;
end;
function RandomExcluding(N: Integer; excluded: TIntArray; size: Integer): Integer;
var
num: Integer;
begin
if size > N + 1 then
begin
RandomExcluding := -1;
Exit;
end;
repeat
num := Random(N + 1);
until not IsExcluded(num, excluded, size);
RandomExcluding := num;
end;
var
excluded: TIntArray;
excludedSize, N, result: Integer;
begin
Randomize;
excludedSize := 3;
excluded[1] := 2;
excluded[2] := 5;
excluded[3] := 7;
N := 14;
result := RandomExcluding(N, excluded, excludedSize);
WriteLn(result);
end.
(*
run:
4
*)