Первый вопрос хакерского кубка Facebook в этом году был представлен в следующей форме:
3 #number of test cases
4 #number of rows of test case 1
. . . x
. . x x
. . x x
. . . x
2 #number of rows of test case 2
. . x x
. . x x
3 #number of rows of test case 3
x x . .
x x . .
. . . x
Обычно при решении задач codeforces или topcoder вам не нужно вводить 5 тестовых случаев друг за другом, вы просто делаете это для одного, и они запускают его через 20-25 тестовых случаев.
Мне пришлось немало потрудиться, пытаясь манипулировать этими данными, чтобы сделать их пригодными для использования, и мне было интересно, как это можно сделать.
Например, если бы это было просто
5
2 3 4 5 6
Я мог бы использовать input() для получения первого числа и
import sys
data = []
for line in sys.stdin:
y = [int(x) for x in line.split()]
data.append(y)
манипулировать остальными. Если бы я сделал что-то подобное для этой проблемы (заменив int на str), я бы получил один массив, например [3,4,data,2,data,3,data], которым сложно манипулировать.
Как я могу прочитать несколько тестовых случаев со стандартного ввода? (даже общие ответы полезны, поскольку сам вопрос не такой уж конкретный)