Здравствуйте.
На вход подаются такие вот данные:
2
3 3
1 2
2 3
1 3
4 2
1 2
3 4
Первая строка — это число тест кейсов. Первая строка каждого кейса содержит два числа через пробел: сколько разных элементов и сколько пар этих элементов сейчас выведется. Потом выводятся пары. Вот на всякий случай ссылка на задачу:
www.spoj.pl/problems/BUGLIFE/
Мне нужно превращать каждый тест-кейс в список пар и отправлять в функцию solve. То есть я должен послать в solve по очереди [(1, 2), (2, 3), (1, 3)] и [(1, 2), (3, 4)]
Обычно я это делаю наивно (до этого ввод никогда не был узким местом)
def main(raw_input=raw_input):
cases = int(raw_input())
for case in xrange(cases):
pairs = []
tmp = raw_input().split()
for i in range(int(tmp[1])):
pr = raw_input().split()
pairs.append((int(pr[0]), int(pr[1])))
print 'Scenario #%d:' % (case + 1)
solve(pairs)
* This source code was highlighted with Source Code Highlighter.
Но тут у задачи оказались драконовские требования по времени, запустил профайлер, оказалось, что сама функция solve практически неощутима, а вот процессинг ввода съедает все время. Я знаю, что можно читать эффективнее, но хотелось бы сразу заполнить этот пробел в знаниях самым оптимальным методом. :-) Если вместо списка пар будет генератор — только лучше.
Заранее спасибо.