Задача про комнаты и печати

Принцип решения мне вроде понятен, но я не знаю как сохранить все входные данные, которые поступают в программу. Особую сложность составляет последовательность чисел, которые записываются в одну строку. Как можно реализовать сохранение всех входных данных для дальнейшей работы с ними? Условие задачи и пример прикрепляю в виде изображения.введите сюда описание изображения


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

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

более-менее не сложная задача, исключающая по большей части перебор :)

подсказка:

раз кол-во печатей чётное, то их всегда можно разбить на пары

решение:

пусть есть пара печатей a1, a2 и требуется найти такие b1, b2, чтобы a1 * b1 = a2 * b2

очевидно, что если b1 = -a2, а b2 = a1, то условие выполняется

поскольку |a| < 100, то и |b| < 100

или я какое-то из условий пропустил, которое не дает сделать такой подход?

Алгоритм ввода данных можно сделать так:

  1. узнать кол-во комнат

  2. считать строку с числами для каждой комнаты и распарсить это в массив чисел

Пример код:

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()))]
→ Ссылка
Автор решения: Danis

примерно так:

arr = []
for i in range(int(input())):
    input()
    arr_ = input().split()
    arr.append(list(map(int, arr_))) 
→ Ссылка