結果

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

ソースコード

diff #

n = gets.to_i
g = Array.new(n) { [] }
ini = nil
(n - 1).times do
  u, v, w = gets.split.map(&:to_i)
  ini = [u - 1, w] if ini.nil? || ini[1] < w
  g[u - 1] << [v - 1, w]
  g[v - 1] << [u - 1, 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

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

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