program CompareStrings;
function AtLeastHalfEqual(const s1, s2: string): boolean;
var
i, matches, len: integer;
begin
{ Check for nil-equivalent and equal length }
len := length(s1);
if (len = 0) or (len <> length(s2)) then
begin
AtLeastHalfEqual := false;
exit;
end;
matches := 0;
for i := 1 to len do
if s1[i] = s2[i] then
inc(matches);
{ matches / len >= 0.5 → 2 * matches >= len }
AtLeastHalfEqual := (matches * 2 >= len);
end;
var
str1, str2: string;
begin
writeln(AtLeastHalfEqual('abcde', 'axcfz'));
writeln(AtLeastHalfEqual('javascript c# c++ c python', 'javascript c# r c rust sql'));
end.
(*
run:
FALSE
TRUE
*)