program FindNextLetter;
const
size = 4;
letters: array[1..size] of char = ('c', 'e', 'k', 'm'); // Sorted list of letters
function FindSmallestLetterGreaterThanTarget(given_letter: char): char;
var
left, right, mid: integer;
result: char;
begin
left := 1;
right := size;
result := letters[1]; // Default to the first letter
while left <= right do
begin
mid := left + (right - left) div 2;
if letters[mid] > given_letter then
begin
result := letters[mid];
right := mid - 1; // Narrow down to the left half
end
else
left := mid + 1; // Narrow down to the right half
end;
FindSmallestLetterGreaterThanTarget := result;
end;
var
given_letter, result: char;
begin
given_letter := 'd';
result := FindSmallestLetterGreaterThanTarget(given_letter);
writeln('The smallest letter greater than ''', given_letter, ''' is: ', result);
end.
(*
run:
The smallest letter greater than 'd' is: e
*)