А вот дополненный вариант, который не считает числа после нуля (по условию оговаривается что последний в строке ноль, поэтому в первом варианте я проверку на ноль опустил, но вдруг экзаменатор захочет схитрить? А мы ему не дадим)
В этом варианте первоначально записывается позиция нуля в строке, а потом позиции всех чисел сравниваются с позицией нуля (если позиция цифры меньше позиции нуля, значит все ок, иначе - отсекается)
Код
program bb;
var
st,num: string;
i,h,x,y,zero:integer;
R:array [0..30] of integer;
begin
x:=0;
h:=0;
readln(st);
zero:=pos('0',st);
for I:=1 to 9 do
begin
str(i,num);
x:=pos(num,st);
if ((x<>0)AND(x<zero)) then
begin
h:=h+1;
R[h]:=x;
end;
end;
for x:=1 to 3 do // сколько раз дублировать ответ
begin
for H:=1 to H do
begin
write(st[R[h]]);
end;
end;
if H=0 then writeln('NO');
end.