Не так давно Савелий переехал в новый район и теперь живёт в многоэтажном доме на этаже N. В доме Савелия три лифта. Лифт «A» и лифт «C» – грузопассажирские (рассчитаны на 8 человек), а лифт «B» – пассажирский (рассчитан на 4 человека). В первые месяцы жизни в новом доме Савелий выяснил, что лифты работают по следующим правилам:
В первую очередь приезжает ближайший лифт, при этом неважно, находится он выше или ниже нужного этажа.
Если есть лифты, находящиеся на одинаковом расстоянии от нужного этажа и среди них есть пассажирский лифт, то предпочтение отдаётся ему.
Если есть два грузовых лифта, находящиеся на одинаковом расстоянии выше и ниже нужного этажа, то приезжает лифт, находящийся выше.
При прочих равных условиях предпочтение отдаётся лифту «A».
Правила применяются строго в указанном порядке.
Савелий вышел из квартиры и вызвал лифт, чтобы спуститься на первый этаж. Известно, на каких этажах находятся лифты «A», «B» и «С». Необходимо определить, какой именно лифт приедет на этаж Савелия.
Формат ввода:
На отдельных строках вводятся 4 числа – N (этаж, на котором живёт Савелий), A (этаж, на котором находится лифт «A»), B (этаж, на котором находится лифт «B»), C (этаж, на котором находится лифт «C»).
Все числа натуральные и не превышают 100.
Формат вывода:
Необходимо вывести один из латинских символов «A», «B» или «C» – обозначение лифта, который приедет на этаж Савелия.
Программу написать на языке ABCpascal)
function nmbdec(var n,osn: integer): integer;
var nmb,l,s,k: integer;
begin
nmb:=0; s:=0;
k:=n; l:=1;
while k>0 do
begin
s:=k mod 10;
k:=k div 10;
nmb:=nmb+l*s;
l:=l*osn;
end;
Result:=nmb;
end;
{ конец функции}
begin
write('число: ');
readln(n);
write('квадрат какого числа: ');
readln(m);
osn:=10;
while osn>=2 do
begin
osn:=osn-1;
if nmbdec(n,osn)=sqr(nmbdec(m,osn)) then
begin
writeln('основание системы = ',osn);
break;
end;
end;
end.