結果

問題 No.3113 The farthest point
ユーザー tufusa
提出日時 2025-04-19 17:07:38
言語 Ruby
(3.4.1)
結果
WA  
実行時間 -
コード長 501 bytes
コンパイル時間 105 ms
コンパイル使用メモリ 8,064 KB
実行使用メモリ 59,520 KB
最終ジャッジ日時 2025-04-19 17:08:03
合計ジャッジ時間 19,857 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 20 WA * 13
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

n = gets.to_i
g = Array.new(n) { [] }
(n - 1).times do
  u, v, w = gets.split.map(&:to_i)
  g[u - 1] << [v - 1, w]
  g[v - 1] << [u - 1, w]
end

def dfs(g, seen, now, cost)
  max = [cost, now]
  g[now].each do |nxt, w|
    next if seen[nxt]

    seen[nxt] = true
    res = dfs(g, seen, nxt, cost + w)
    max = res if max[0] < res[0]
  end

  max
end

seen = Array.new(n, false).tap { _1[0] = true }
far1 = dfs(g, seen, 0, 0)[1]

seen.fill(false).tap { _1[far1] = true }
puts dfs(g, seen, far1, 0)[0]
0