Витя работает недалеко от одной из станций кольцевой линии Московского метро, а живет...

0 голосов
374 просмотров

Витя работает недалеко от одной из станций кольцевой линии Московского метро, а живет рядом с другой станцией той же линии. Требуется выяснить, мимо какого наименьшего количества промежуточных станций необходимо проехать Вите по кольцу, чтобы добраться с работы домой.
Формат входных данных
Станции пронумерованы подряд натуральными числами 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


Информатика (35 баллов) | 374 просмотров
Дан 1 ответ
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;<br>  y2:=y2+1;
  until x=j;  
if y2end.