Skip to main content

aizu_online_judge/grl/
grl_5_c.rs

1use 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}