Поиск по этому блогу

среда, 14 февраля 2018 г.

Задача "Метро"

Витя работает недалеко от одной из станций кольцевой линии метро, а живет рядом с другой станцией той же линии. Требуется выяснить, мимо какого наименьшего количества промежуточных станций необходимо проехать Вите по кольцу, чтобы добраться с работы домой.Входные данные
Во входном файле INPUT.TXT заданы три числа: сначала N – общее количество станций кольцевой линии, а затем i и j – номера станции, на которой Витя садится, и станции, на которой он должен выйти. Станции пронумерованы подряд натуральными числами 1, 2, 3, …, N (1-я станция – соседняя с N-й), N не превосходит 100. Числа i и j не совпадают. Все числа разделены пробелом.
Выходные данные
В выходной файл OUTPUT.TXT требуется вывести минимальное количество промежуточных станций (не считая станции посадки и высадки), которые необходимо проехать Вите.
Примеры
INPUT.TXT
OUTPUT.TXT
1
100 5 6
0
2
10 1 9
1
Решение
var
i,n,j,k:integer;
f,f1:text; 
begin
assign(f,'input.txt'); 
    reset(f); 
     assign(f1,'output.txt'); 
     rewrite(f1); 
    readln(f,n,i,j);if i>j then begin k:=i; i:=j; j:=k; end;
    if (n-j+i-1)<(j-i) then k:=(n-j-1)+i else k:=j-i-1;
    write(f1,k);
  close(f1);  close(f);
end.

Вопросы, замечания, свои вариант решения пишите в комментариях.

Комментариев нет:

Отправить комментарий