Предмет: Информатика,
автор: Uninixsad
Витя работает недалеко от одной из станций кольцевой линии Московского метро, а живет рядом с другой станцией той же линии. Требуется выяснить, мимо какого наименьшего количества промежуточных станций необходимо проехать Вите по кольцу, чтобы добраться с работы домой.
Формат входных данных
Станции пронумерованы подряд натуральными числами 1, 2, 3, …, N (1-я станция – соседняя с N-й), N не превосходит 100.
Вводятся три числа: сначала N – общее количество станций кольцевой линии, а затем i и j – номера станции, на которой Витя садится, и станции, на которой он должен выйти. Числа i и j не совпадают. Все числа разделены пробелом.
Формат выходных данных
Требуется выдать минимальное количество промежуточных станций (не считая станции посадки и высадки), которые необходимо проехать Вите.
Примеры
Входные данные
Выходные данные
Комментарий
100 5 6
0
На кольцевой линии 100 станций; проехать с 5-й на 6-ю станцию Витя может напрямую, без промежуточных станций
10 1 9
1
На кольцевой линии 10 станций; проехать с 1-й на 9-ю станцию Витя может через одну промежуточную, ее номер 10
Ответы
Автор ответа:
0
var n,i,j,x,y1,y2:integer;
begin
readln(n,i,j);
x:=i;
y1:=-1;
y2:=-1;
//y1 - движение в прямом направлении
repeat
x:=x+1;
if x>n then x:=1;
y1:=y1+1;
until x=j;
//y2 - движение в обратном направлении
x:=i;
repeat
x:=x-1;
if x<1 then x:=n;
y2:=y2+1;
until x=j;
if y2<y1 then writeln(y2) else writeln(y1);
end.
begin
readln(n,i,j);
x:=i;
y1:=-1;
y2:=-1;
//y1 - движение в прямом направлении
repeat
x:=x+1;
if x>n then x:=1;
y1:=y1+1;
until x=j;
//y2 - движение в обратном направлении
x:=i;
repeat
x:=x-1;
if x<1 then x:=n;
y2:=y2+1;
until x=j;
if y2<y1 then writeln(y2) else writeln(y1);
end.
Похожие вопросы
Предмет: Қазақ тiлi,
автор: dayanakuanysdaana
Предмет: Математика,
автор: makpalzhetibaeva18
Предмет: Математика,
автор: elizaveta332337
Предмет: Математика,
автор: Georgy2001
Предмет: Биология,
автор: Nastusha246