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点とれたんですけどねー。 まぁそれでも落ちてるんですがねー。