結果
問題 |
No.1752 Up-Down Tree
|
ユーザー |
|
提出日時 | 2021-11-19 22:35:42 |
言語 | Ruby (3.4.1) |
結果 |
RE
|
実行時間 | - |
コード長 | 735 bytes |
コンパイル時間 | 177 ms |
コンパイル使用メモリ | 7,936 KB |
実行使用メモリ | 30,872 KB |
最終ジャッジ日時 | 2025-01-01 19:34:24 |
合計ジャッジ時間 | 6,951 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | WA * 13 RE * 7 |
コンパイルメッセージ
Syntax OK
ソースコード
N = gets.to_i graph = Array.new(N) { [] } (N - 1).times do u, v = gets.split.map { |s| s.to_i - 1} graph[u] << v graph[v] << u end depth = [nil] * N depth[0] = 0 stack = [0] while (u = stack.pop) graph[u].each do |v| next if depth[v] depth[v] = depth[u] + 1 stack << v end end path = [] visited = [false] * N dfs = ->u { visited[u] = true graph[u].each do |v| next if visited[v] path << v dfs[v] path << u end } dfs[0] mode = -1 visited = [false] * N ans = 4 u = path[0] visited[u] = true path[1..].each do |v| next if visited[v] or (depth[u] <=> depth[v]) != mode visited[v] = true mode = -mode ans += 1 u = v end puts ans