This documentation is automatically generated by competitive-verifier/competitive-verifier
// 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(" "));
}
}
| Env | Name | Status | Elapsed | Memory |
|---|---|---|---|---|
| Rust | example_00 |
|
5 ms | 2 MB |
| Rust | large_cycle_00 |
|
125 ms | 74 MB |
| Rust | max_random_00 |
|
715 ms | 65 MB |
| Rust | max_random_01 |
|
731 ms | 64 MB |
| Rust | max_random_02 |
|
727 ms | 65 MB |
| Rust | max_random_03 |
|
738 ms | 64 MB |
| Rust | max_random_04 |
|
735 ms | 64 MB |
| Rust | random_00 |
|
575 ms | 53 MB |
| Rust | random_01 |
|
669 ms | 59 MB |
| Rust | random_02 |
|
68 ms | 30 MB |
| Rust | random_03 |
|
563 ms | 40 MB |
| Rust | random_04 |
|
386 ms | 30 MB |