結果
問題 |
No.3113 The farthest point
|
ユーザー |
![]() |
提出日時 | 2025-07-13 15:31:33 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 485 ms / 2,000 ms |
コード長 | 513 bytes |
コンパイル時間 | 266 ms |
コンパイル使用メモリ | 82,060 KB |
実行使用メモリ | 111,280 KB |
最終ジャッジ日時 | 2025-07-13 15:31:45 |
合計ジャッジ時間 | 11,361 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 33 |
ソースコード
import sys sys.setrecursionlimit(200050) N = int(input()) E = [[] for _ in range(N)] for _ in range(N-1): u, v, w = map(int,input().split()) u -= 1 v -= 1 E[u].append((v,w)) E[v].append((u,w)) INF = - 10 ** 10 dp = [INF] * N def dfs(x, p = -1): ret = [0] for y,w in E[x]: if y != p: ret.append(w + dfs(y,x)) ret.sort(reverse = True) if len(ret) == 1: dp[x] = ret[0] else: dp[x] = sum(ret[:2]) return ret[0] dfs(0) print(max(dp))