Първият въпрос от тазгодишната фейсбук хакерска купа включваше следната форма:
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], който изглежда труден за манипулиране.
Как мога да прочета множество тестови случаи от stdin? (дори общите отговори са полезни, тъй като самият въпрос не е толкова специфичен)