結果
| 問題 |
No.277 根掘り葉掘り
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-10-14 14:02:29 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 1,323 ms / 3,000 ms |
| コード長 | 771 bytes |
| コンパイル時間 | 205 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 141,448 KB |
| 最終ジャッジ日時 | 2024-07-21 07:43:26 |
| 合計ジャッジ時間 | 13,889 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
| 外部呼び出し有り |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 18 |
コンパイルメッセージ
Syntax OK
ソースコード
if !ENV['RUBY_THREAD_VM_STACK_SIZE']
require 'rubygems';RUBY=Gem.ruby
exec({'RUBY_THREAD_VM_STACK_SIZE'=>'100000000'},RUBY,$0,close_others:false)
end
def dfs(n,d,z)
r=nil
H[n].each{|e|
if !z.has_key?(e)
z[e]=1
r||=1<<29
x=dfs(e,d+1,z)
r=[r,x+1].min
z.delete(e)
end
}
r||=0
R[n]=[r,d].min
L[n]=r
r
end
def dfs2(n,d,z)
H[n].each{|e|
if !z.has_key?(e)
z[e]=1
dfs2(e,[d,L[n]].min+1,z)
z.delete(e)
end
}
R[n]=[R[n],d].min
end
n=gets.to_i
H=Hash.new{|h,k|h[k]=[]}
R={}
L={}
(n-1).times{
x,y=gets.split.map(&:to_i)
H[x]<<y
H[y]<<x
}
dfs(1,0,{1=>1})
dfs2(1,0,{1=>1})
1.step(n){|i|p R[i]}