結果
| 問題 |
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