aizu_online_judge/grl/
grl_5_c.rs1use competitive::prelude::*;
2use competitive::{graph::UndirectedSparseGraph, tools::SizedCollect};
3
4#[verify::aizu_online_judge("GRL_5_C")]
5pub fn grl_5_c(reader: impl Read, writer: impl Write) {
6 prepare_io!(reader, writer);
7 sc!(n, c: [SizedCollect<usize>; iter n]);
8 let edges = c
9 .enumerate()
10 .flat_map(|(u, it)| it.into_iter().map(move |v| (u, v)))
11 .collect();
12 let tree = UndirectedSparseGraph::from_edges(n, edges);
13 let lca = tree.lca(0);
14 sc!(q, uv: [(usize, usize); iter q]);
15 for (u, v) in uv {
16 pp!(lca.lca(u, v));
17 }
18}