Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- l1, r1, l2, r2, l3, r3 = 0, 2, 4, 5, 3, 6 # 1
- #l1, r1, l2, r2, l3, r3 = 1, 2, 9, 10, 12, 20 # 3
- #l1, r1, l2, r2, l3, r3 = 1, 5, 0, 1, 4, 8 # 0
- if 0 <= l1 < r1 <= 100 and 0 <= l1 < r1 <= 100 and 0 <= l1 < r1 <= 100:
- # группируем все по tuple - спичкам. match - это название спички
- m1 = (l1, r1)
- m2 = (l2, r2)
- m3 = (l3, r3)
- # 3!=6 возможно 6 перестановок:
- # m1, m2, m3
- # m2, m1, m3
- # m2, m3, m1
- # m3, m2, m1
- # m3, m1, m2
- # m1, m3, m2
- # онда из перестановок может образовать непрерывную линию из спичек
- # проверяем первый вариант
- if (m1[1] < m2[1] < m3[1]) \
- and (m1[1] >= m2[0] and m2[1] >= m3[0]) \
- or (m2[1] < m1[1] < m3[1]) \
- and (m2[1] >= m1[0] and m1[1] >= m3[0]) \
- or (m2[1] < m3[1] < m1[1]) \
- and (m2[1] >= m3[0] and m3[1] >= m1[0]) \
- or (m3[1] < m2[1] < m1[1]) \
- and (m3[1] >= m2[0] and m2[1] >= m1[0]) \
- or (m3[1] < m1[1] < m2[1]) \
- and (m3[1] >= m1[0] and m1[1] >= m2[0]) \
- or (m1[1] < m3[1] < m2[1]) \
- and (m1[1] >= m3[0] and m3[1] >= m2[0]) :
- # спички не надо двигать
- print(0)
- else:
- # Если надо двигать первую спичку:
- # есть промежуток между 2й и 3й спичкой
- # и его можно залатать длиной 1й спички
- # 2я и 3я соеденены, двигаем 1ю к ним
- # 3я и 2я соеденены, двигаем 1ю к ним
- cond = (m3[0] > m2[1] and (m3[0] - m2[1]) <= (m1[1] - m1[0]))
- cond2 = (m3[0] > m1[1] and (m3[0] - m1[1]) <= (m2[1] - m2[0]))
- cond3 = (m2[0] > m1[1] and (m2[0] - m1[1]) <= (m3[1] - m3[0]))
- if cond \
- or ((m2[0]< m3[0]) and m2[1] >= m3[0]) \
- or ((m3[0]< m2[0]) and m3[1] >= m2[0]):
- # if (m2[1] >= m3[0]) :
- # print("aaa")
- # if (m3[1] >= m2[0]) :
- # print("bbb")
- print(1)
- # Если надо двигать вторую спичку:
- # есть промежуток между 1й и 3й спичкой
- # и его можно залатать длиной 2й спички
- # 1я и 3я соеденены, двигаем 2ю к ним
- # 3я и 1я соеденены, двигаем 2ю к ним
- elif cond2 \
- or ((m1[0]< m3[0]) and m1[1] >= m3[0]) \
- or ((m3[0]< m1[0]) and m3[1] >= m1[0]) :
- print(2)
- # Если надо двигать третью спичку:
- # есть промежуток между 1й и 2й спичкой
- # и его можно залатать длиной 3й спички
- # 1я и 2я соеденены, двигаем 3ю к ним
- # 2я и 1я соеденены, двигаем 3ю к ним
- elif cond3 \
- or ((m1[0]< m2[0]) and m1[1] >= m2[0]) \
- or ((m2[0]< m1[0]) and m2[1] >= m1[0]) :
- print(3)
- else:
- print(-1)
- # проверяем 1ю спичку
- # проверяем 2ю спичку
- # проверяем 3ю спичку
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement