結果
問題 |
No.3113 The farthest point
|
ユーザー |
|
提出日時 | 2025-04-19 18:30:27 |
言語 | Ruby (3.4.1) |
結果 |
TLE
|
実行時間 | - |
コード長 | 641 bytes |
コンパイル時間 | 421 ms |
コンパイル使用メモリ | 8,192 KB |
実行使用メモリ | 146,372 KB |
最終ジャッジ日時 | 2025-04-19 18:30:35 |
合計ジャッジ時間 | 7,489 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | TLE * 1 -- * 32 |
コンパイルメッセージ
Syntax OK
ソースコード
n = gets.to_i g = Array.new(n) { [] } (n - 1).times do u, v, w = gets.split.map(&:to_i) next if w < 0 u -= 1 v -= 1 g[u] << [v, w] g[v] << [u, w] end def dfs(g, seen, now, cost) max = [now, cost] g[now].each do |nxt, w| next if seen[nxt] seen[nxt] = true res = dfs(g, seen, nxt, cost + w) max = res if max[1] < res[1] end max end max = 0 seen = Array.new n, false n.times do |i| next if seen[i] seen.fill(false).tap { _1[i] = true } far1 = dfs(g, seen, i, 0)[0] seen2 = Array.new(n, false).tap { _1[far1] = true } far2 = dfs(g, seen2, far1, 0)[1] max = far2 if max < far2 end puts max