結果
問題 | No.277 根掘り葉掘り |
ユーザー |
|
提出日時 | 2017-03-12 10:40:28 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 626 ms / 3,000 ms |
コード長 | 722 bytes |
コンパイル時間 | 168 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 33,280 KB |
最終ジャッジ日時 | 2024-06-25 05:17:12 |
合計ジャッジ時間 | 8,658 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
コンパイルメッセージ
Syntax OK
ソースコード
# frozen_string_literal: truen = gets.to_iedges = {}(n - 1).times dox, y = gets.split.map(&:to_i)(edges[x] ||= []) << y(edges[y] ||= []) << xendroot_node = 1leaf_nodes = edges.find_all { |_k, v| v.length == 1 }.map(&:first) - [root_node]zero_nodes = [root_node] + leaf_nodesnode_lengths = Array.new(n + 1)checked_nodes = Array.new(n + 1) { false }queue = []zero_nodes.each do |rl|queue << rlchecked_nodes[rl] = truenode_lengths[rl] = 0endwhile (i = queue.shift)next_root_length = node_lengths[i] + 1edges[i].each do |t|next if checked_nodes[t]queue << tchecked_nodes[t] = truenode_lengths[t] = next_root_lengthendendnode_lengths.shiftputs node_lengths