Задача про комнаты и печати
Принцип решения мне вроде понятен, но я не знаю как сохранить все входные данные, которые поступают в программу. Особую сложность составляет последовательность чисел, которые записываются в одну строку. Как можно реализовать сохранение всех входных данных для дальнейшей работы с ними? Условие задачи и пример прикрепляю в виде изображения.
Ответы (2 шт):
более-менее не сложная задача, исключающая по большей части перебор :)
подсказка:
раз кол-во печатей чётное, то их всегда можно разбить на пары
решение:
пусть есть пара печатей a1, a2 и требуется найти такие b1, b2, чтобы a1 * b1 = a2 * b2
очевидно, что если b1 = -a2, а b2 = a1, то условие выполняется
поскольку |a| < 100, то и |b| < 100
или я какое-то из условий пропустил, которое не дает сделать такой подход?
Алгоритм ввода данных можно сделать так:
узнать кол-во комнат
считать строку с числами для каждой комнаты и распарсить это в массив чисел
Пример код:
rooms_amount = int(input())
locks = []
for _ in range(rooms_amount):
room_locks = list(map(int, input().split()))
locks.append(room_locks)
Ну или в более компактном виде:
locks = [[*map(int, input().split())] for _ in range(int(input()))]
примерно так:
arr = []
for i in range(int(input())):
input()
arr_ = input().split()
arr.append(list(map(int, arr_)))