提出 #14906630


ソースコード 拡げる

from collections import defaultdict
import sys

sys.setrecursionlimit(10**6)


def solve(N, M, edges):
    longest = {}

    def get_longest(start):
        if start in longest:
            return longest[start]

        next_edges = edges.get(start)
        if not next_edges:
            ret = 0
        else:
            ret = max(get_longest(v) for v in edges[start]) + 1
        longest[start] = ret
        return ret

    return max(get_longest(v) for v in edges)


def main():
    N, M = map(int, input().split())
    edges = defaultdict(set)
    for i in range(M):
        v1, v2 = map(int, input().split())
        edges[v1].add(v2)

    print(solve(N, M, edges))


main()

提出情報

提出日時
問題 G - Longest Path
ユーザ nishiohirokazu
言語 PyPy3 (7.3.0)
得点 0
コード長 718 Byte
結果 TLE
実行時間 2264 ms
メモリ 1581196 KiB

ジャッジ結果

セット名 All
得点 / 配点 0 / 100
結果
AC × 21
TLE × 1
セット名 テストケース
All 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18
ケース名 結果 実行時間 メモリ
0_00 AC 76 ms 64760 KiB
0_01 AC 72 ms 64888 KiB
0_02 AC 67 ms 64932 KiB
1_00 AC 65 ms 64868 KiB
1_01 TLE 2264 ms 1581196 KiB
1_02 AC 234 ms 85796 KiB
1_03 AC 338 ms 106560 KiB
1_04 AC 324 ms 95640 KiB
1_05 AC 304 ms 88244 KiB
1_06 AC 320 ms 85068 KiB
1_07 AC 260 ms 82404 KiB
1_08 AC 245 ms 82608 KiB
1_09 AC 236 ms 84424 KiB
1_10 AC 223 ms 86144 KiB
1_11 AC 301 ms 91952 KiB
1_12 AC 394 ms 146132 KiB
1_13 AC 349 ms 112468 KiB
1_14 AC 313 ms 90836 KiB
1_15 AC 289 ms 84296 KiB
1_16 AC 378 ms 121612 KiB
1_17 AC 422 ms 140600 KiB
1_18 AC 319 ms 100244 KiB