Как найти пересечение двух отрезков на прямой?

На вход даются 2 отрезка [a1,b1], [a2,b2]. При это b1>a1, b2>a2 Программа должна вывести на экран границы отрезка, являющегося пересечением, либо общую точку, либо текст «пустое множество».

while True:
    a1 = int(input('a1 = '))
    b1 = int(input('b1 = '))
    if b1 > a1:
        break
    else:
        print("Введите b1 > a1")

while True:
    a2 = int(input('a2 = '))
    b2 = int(input('b2 = '))
    if b2 > a2:
        break
    else:
        print("Введите b2 > a2")
if a2 > b1 or b2 < a1:
    print ("пустое множество")
elif b2 == a1:
    print (b2)
elif a2 == b1:
    print (b1)
elif a2 == a1 and b2 == b1:
    print (a1, b1)

elif a2 <= b1 and a2 > a1:
        print(a2,b1)
elif b2 <= b1 and a2 < a1:
   print(a1, b2)

Stepik выдаёт ошибку: Test input: 1 3 2 4 Correct output: 2 3

Your code output: a1 = b1 = a2 = b2 = 2 3


Ответы (1 шт):

Автор решения: MBo

Уберите подсказки из инпутов

a1 = int(input()) 

вместо

a1 = int(input('a1 = '))

Проверяющей системе они не нужны, а только мешают.

Кроме того, циклы while для обеспечения правильного ввода не нужны, система не будет стараться исправить свои ошибки ;) Обычно гарантируется корректность ввода,

→ Ссылка