Лучшие помощники
14 октября 2022 16:34
1187

1Задача 3: Андрей и порталы
Андрей вот-вот опоздает на школьный этап ВсОШ. К счастью, недавно в его городе появились порталы.
Город, в котором живет Андрей, можно представить в виде прямой. Всего в городе успели построить N порталов. Портал с номером і расположен в точке с
координатой х. Если в текущий момент времени вы находитесь в одной точке с каким-нибудь порталом, то можете всего за одну секунду телепортироваться в
любой другой портал вне зависимости от расстояния между ними. А время, требуемое для преодоления расстояния между точками с координатами рид без
использования порталов равно |р q секунд. Андрей является влиятельным гражданином, поэтому он может использовать систему порталов любое
количество раз.
Изначально Андрей находится в точке ѕ, а точка проведения олимпиады имеет координату е. Помогите Андрею понять, как быстро он может попасть на
олимпиаду, ведь каждая секунда на счету.
Входные данные
В первой строке входных данных записано одно целое число ѕ– начальное положение Андрея.
Во второй строке записано одно целое число е - место проведения олимпиады.
В третьей строке записано количество порталов N (2 s N< 2x105).
В каждой из следующих строк записано целое число х, - координата портала с номером і.
Все числа s, e, x, по модулю не превосходят 108.
Выходные данные
Выведите одно число - минимальное количество секунд, которое потребуется Андрею для того, чтобы добраться до места проведения олимпиады.
Система оценки
Решения, правильно работающие только для случаев, когда N не превосходит 10, будут оцениваться в 20 баллов.
Решения, правильно работающие только для случаев, когда не превосходит 1000, будут оцениваться в 60 баллов.​

2 ответа
Посмотреть ответы
Ответ:
x = int(input())
y = int(input())
n = int(input())
x1=abs(x-y)
x2=abs(x-y)
list1=[]
for q in range(n):
k=int(input())
list1.append(k)
if abs(x-k)<x1:
x1=abs(x-k)
if abs(y-k)<x2:
x2=abs(y-k)
g=x1+x2+1
h=abs(x-y)
if g<h:
print(g)
else: print(h)
Объяснение:
Python
0
·
Хороший ответ
14 октября 2022 16:34
Ответ:s=int(input())

e=int(input())

n=int(input())

port=[]

for i in range(0,n):

x=int(input())

port.append(x)

a=1000000000

for i in range(0,n):

if (abs(port[i] - s)) < a:

a = abs(port[i] - s)

b=1000000000

for i in range(0,n):

if (abs(port[i] - e)) < b:

b = abs(port[i] - e)

if abs(s - e) < (a+b+1):

print(abs(s - e))

else:

print(a+b+1)

Объяснение:
В первой строке входных данных записано одно целое число s — начальное положение Андрея.

Во второй строке записано одно целое число e — место проведения олимпиады.

В третьей строке записано количество порталов N (2 ≤ N ≤ 2×105).

В каждой из N следующих строк записано целое число xi — координата портала с номером i.

Все числа s, e, xi по модулю не превосходят 108.
0
14 октября 2022 16:34
Остались вопросы?
Найти нужный