library-rs

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub naoya675/library-rs

:heavy_check_mark: verification/aizu-online-judge/grl_3_c_tarjan/src/main.rs

Depends on

Code

// verification-helper: PROBLEM https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_3_C

use proconio::input;

use strongly_connected_components_tarjan::StronglyConnectedComponents;
use union_find::UnionFind;

fn main() {
    input! {
        v: usize,
        e: usize,
        st: [(usize, usize); e],
        q: usize,
        uv: [(usize, usize); q],
    }
    let mut scc = StronglyConnectedComponents::new(v);
    st.iter().for_each(|&(s, t)| scc.add_edge(s, t));
    let groups = scc.scc();

    let mut uf = UnionFind::new(v);
    for group in groups {
        for i in 0..group.len() {
            uf.merge(group[0], group[i]);
        }
    }

    for &(u, v) in &uv {
        println!("{}", if uf.same(u, v) { 1 } else { 0 });
    }
}

Test cases

Env Name Status Elapsed Memory
Rust 00_sample_00.in :heavy_check_mark: AC 4 ms 2 MB
Rust 01_small_00.in :heavy_check_mark: AC 3 ms 2 MB
Rust 01_small_01.in :heavy_check_mark: AC 3 ms 2 MB
Rust 01_small_02.in :heavy_check_mark: AC 3 ms 2 MB
Rust 01_small_03.in :heavy_check_mark: AC 3 ms 2 MB
Rust 02_medium_00.in :heavy_check_mark: AC 3 ms 2 MB
Rust 02_medium_01.in :heavy_check_mark: AC 3 ms 2 MB
Rust 03_sparse_00.in :heavy_check_mark: AC 3 ms 2 MB
Rust 03_sparse_01.in :heavy_check_mark: AC 3 ms 2 MB
Rust 03_sparse_02.in :heavy_check_mark: AC 3 ms 2 MB
Rust 03_sparse_03.in :heavy_check_mark: AC 4 ms 2 MB
Rust 04_dense_00.in :heavy_check_mark: AC 3 ms 2 MB
Rust 04_dense_01.in :heavy_check_mark: AC 3 ms 2 MB
Rust 04_dense_02.in :heavy_check_mark: AC 4 ms 2 MB
Rust 04_dense_03.in :heavy_check_mark: AC 6 ms 2 MB
Rust 05_rand_00.in :heavy_check_mark: AC 6 ms 2 MB
Rust 05_rand_01.in :heavy_check_mark: AC 6 ms 2 MB
Rust 05_rand_02.in :heavy_check_mark: AC 10 ms 3 MB
Rust 06_linear_00.in :heavy_check_mark: AC 36 ms 5 MB
Rust 06_linear_01.in :heavy_check_mark: AC 38 ms 5 MB
Rust 07_linear_00.in :heavy_check_mark: AC 39 ms 5 MB
Rust 07_linear_01.in :heavy_check_mark: AC 39 ms 5 MB
Rust 08_grid_00.in :heavy_check_mark: AC 50 ms 4 MB
Rust 08_grid_01.in :heavy_check_mark: AC 69 ms 5 MB
Back to top page