def can_form_triangle(a, b, c):
return a + b > c and a + c > b and b + c > a
def get_triangle_sides(prompt):
while True:
try:
sides = tuple(map(int, input(prompt).split()))
if len(sides) != 3:
raise ValueError("Должно быть введено ровно три числа.")
if any(side <= 0 for side in sides):
raise ValueError("Все стороны должны быть положительными числами.")
return sides
except ValueError as e:
print(f"Ошибка ввода: {e}. Попробуйте снова.")
def main():
a, b, c = get_triangle_sides("Введите стороны первой площади (a, b, c): ")
d, e, f = get_triangle_sides("Введите стороны второй площади (d, e, f): ")
first_triangle_possible = can_form_triangle(a, b, c)
second_triangle_possible = can_form_triangle(d, e, f)
if first_triangle_possible and second_triangle_possible:
print("1")
if {a, b, c} == {d, e, f}:
print("1")
else:
print("0")
else:
print("0")
if __name__ == "__main__":
main()
def can_form_triangle(a, b, c):
return a + b > c and a + c > b and b + c > a
def is_same_triangle(sides1, sides2):
return sorted(sides1) == sorted(sides2)
def check_walk(a, b, c, d, e, f):
triangle1 = (a, b, c)
triangle2 = (d, e, f)
# Проверяем возможность построения треугольников
if not can_form_triangle(*triangle1) or not can_form_triangle(*triangle2):
return 0
# Если треугольники одинаковы, случайный проход возможен
if is_same_triangle(triangle1, triangle2):
return (1, 1)
# Иначе случайный проход невозможен
return (1, 0)
# Ввод данных
a, b, c = map(int, input().split())
d, e, f = map(int, input().split())
# Проверяем и выводим результат
result = check_walk(a, b, c, d, e, f)
if isinstance(result, int):
print(result)
else:
print(result[0])
print(result[1])
По его словам, сначала он прошёл a метров по прямой, повернув прошёл ещё b
, затем опять повернул и прошёл c метров, после чего оказался обошёл по периметру всю первую площадь и вернулся к углу мэрии. Затем, повернув прошёл d метров, потом повернув прошёл e метров, и наконец повернув в последний раз и пройдя f метров снова оказался в на углу у мэрии, пройдя по периметру вокруг второй площади.
Вам стало интересно, правдивы ли его истории, но проверить вы можете только 6 чисел a ,b,c , d , e , f
. Скажите, правда ли что теоретически возможно построить 2
треугольные площади с общей вершиной, имеющих стороны a , b , c и d , e , f
соответственно в порядке обхода от общей вершины. Если это возможно, то сообщите так же, мог ли друг пройти случайно во второй раз по той же площади что и в первый.
Если невозможно построить треугольные площади с заданными длинами сторон — выведите
0
.
Если возможно построить треугольные площади с заданными длинами сторон, то в первой строке выведите
1
, и во второй строке выведите 0, если нельзя пройти второй раз случайно по первой площади, и
1
если можно.
Пример 1
Входные данные
2 3 2
8 9 10
Выходные данные
1
0
Пример 2
Входные данные
3 4 5
5 4 3
Выходные данные
1
1
Пример 3
Входные данные
1 2 3
2 3 2
Выходные данные
0