Пересечение отрезков

На числовой прямой даны два отрезка: [a1;   b1] и [a2;  b2]. Напишите программу, которая находит их пересечение.

Пересечением двух отрезков может быть:

  • отрезок;
  • точка;
  • пустое множество.

Формат входных данных
На вход программе подаются 4 целых числа a1, b1, a2, b2 каждое на отдельной строке. Гарантируется, что a1<b1​​ и a2​<b2​​.

Формат выходных данных
Программа должна вывести на экран границы отрезка, являющегося пересечением, либо общую точку, либо текст «пустое множество».

a1, b1, a2, b2 = int(input()), int(input()), int(input()), int(input())
if a2 > b1 or a1 > b2:  # отсекаем отсутствие пересечений и общей точки
    print('пустое множество')
elif a1 == b2:  # первое условие общей точки
    print(a1)
elif a2 == b1:  # второе условие общей точки
    print(a2)
else:  # осталось найти только пересечение
    if a1 > a2:  # получаем первую точку пересечения путем отсечения лишней точки
        a2 = a1
    if b1 < b2:  # получаем вторую точку пересечения
        b2 = b1
    print(a2, b2)


Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: