library-rs

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

View the Project on GitHub naoya675/library-rs

:heavy_check_mark: verification/library-checker/scc-tarjan/src/main.rs

Depends on

Code

// verification-helper: PROBLEM https://judge.yosupo.jp/problem/scc

use itertools::Itertools;
use proconio::input;

use strongly_connected_components_tarjan::StronglyConnectedComponents;

fn main() {
    std::thread::Builder::new()
        .stack_size(64 * 1024 * 1024)
        .spawn(actual_main)
        .unwrap()
        .join()
        .unwrap();
}

fn actual_main() {
    input! {
        n: usize,
        m: usize,
        ab: [(usize, usize); m],
    }
    let mut scc = StronglyConnectedComponents::new(n);
    ab.iter().for_each(|&(a, b)| scc.add_edge(a, b));
    let groups = scc.scc();

    println!("{}", groups.len());
    for group in groups {
        println!("{} {}", group.len(), group.iter().join(" "));
    }
}

Test cases

Env Name Status Elapsed Memory
Rust example_00 :heavy_check_mark: AC 5 ms 2 MB
Rust large_cycle_00 :heavy_check_mark: AC 125 ms 74 MB
Rust max_random_00 :heavy_check_mark: AC 715 ms 65 MB
Rust max_random_01 :heavy_check_mark: AC 731 ms 64 MB
Rust max_random_02 :heavy_check_mark: AC 727 ms 65 MB
Rust max_random_03 :heavy_check_mark: AC 738 ms 64 MB
Rust max_random_04 :heavy_check_mark: AC 735 ms 64 MB
Rust random_00 :heavy_check_mark: AC 575 ms 53 MB
Rust random_01 :heavy_check_mark: AC 669 ms 59 MB
Rust random_02 :heavy_check_mark: AC 68 ms 30 MB
Rust random_03 :heavy_check_mark: AC 563 ms 40 MB
Rust random_04 :heavy_check_mark: AC 386 ms 30 MB
Back to top page