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