提出 #14906600


ソースコード 拡げる

#!/usr/bin/env python3

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
言語 Python (3.8.2)
得点 0
コード長 744 Byte
結果 TLE
実行時間 2209 ms
メモリ 100192 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 31 ms 9200 KiB
0_01 AC 22 ms 9204 KiB
0_02 AC 25 ms 9252 KiB
1_00 AC 26 ms 9352 KiB
1_01 TLE 2209 ms 100192 KiB
1_02 AC 217 ms 17708 KiB
1_03 AC 336 ms 34696 KiB
1_04 AC 316 ms 30000 KiB
1_05 AC 281 ms 26700 KiB
1_06 AC 265 ms 22308 KiB
1_07 AC 248 ms 21788 KiB
1_08 AC 240 ms 18592 KiB
1_09 AC 225 ms 19216 KiB
1_10 AC 219 ms 16196 KiB
1_11 AC 273 ms 23784 KiB
1_12 AC 485 ms 39096 KiB
1_13 AC 526 ms 40416 KiB
1_14 AC 292 ms 25836 KiB
1_15 AC 276 ms 22832 KiB
1_16 AC 410 ms 35812 KiB
1_17 AC 653 ms 44104 KiB
1_18 AC 331 ms 28968 KiB