shin3110
@shin3110

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

実行時エラーの原因が分かりません。

解決したいこと

実行時エラーの原因が分からない

AtCoder ABC292 E問題に提出したコードが3/51が実行時エラーになってしまいました。サンプルを含めて他は正解していて、何がいけないのか分かりません。
もし問題点が分かる方がいたら、教えてほしいです。

該当するソースコード

from collections import defaultdict

def dfs(a, num, pop, v):
    pop[a] = True

    for i in v[a]:
        if not pop[i]:
            num += 1
            num = dfs(i, num, pop, v)

    return num

n, m = map(int, input().split())
v = defaultdict(list)
for _ in range(m):
    a, b = map(int, input().split())
    v[a].append(b)

cnt = 0
for i in range(1, n+1):
    pop = [False for _ in range(n+1)]
    cnt = dfs(i, cnt, pop, v)

print(cnt-m)
0

1Answer

もし、先頭に以下のコードを追加して改善するようなら、再帰が深すぎるのが原因です。

import sys
sys.setrecursionlimit(2010)

詳細は、公式のヘルプを参照してください。

1Like

Comments

  1. @shin3110

    Questioner

    ACになりました!
    呼び出しに上限があるんですね
    ありがとうございます!!

Your answer might help someone💌