GCJあったね

どうもきゃっとあっぱーでーす。
GCJのround1Cがありましたー
おちましたー なぜならば、深い再帰をするコードをpythonで書いてしまったからー。
あせりましたよー 結局sys.setrecursionlimitを知ったのはGCJ終了後でときすでにワロス。
とりあえずそれを使って再帰たくさんできるようにしたコードあげときます。
問題Aです

import sys
sys.setrecursionlimit(10000)

for t in range(input()):
    k=input()
    loads=[map(lambda x:int(x)-1,raw_input().split())[1:] for x in range(k)]
    def solve(x,clear=True):
        global flag
        if clear:flag=[0]*1000
        elif flag[x]:return True
        else:flag[x]=True
        return any((solve(p,False) for p in loads[x]))   
    print "Case #%d: %s" %(t+1,"Yes" if any((solve(x) for x in range(k))) else "No")

なんかこわいひとのツイートを見ているとワーシャルフロイド法を使っているらしいですが、かなしいかな私はそんなものすっかり忘れてしまっていたので力技(全探索)でやりました。幸いLargeでもオーダーが問題なかったのでpythonでも通ります。本番でsys.setrecursionlimitを知っておけば28点とれたんですけどねー。 まぁそれでも落ちてるんですがねー。