提出 #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 | ||||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| 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 |