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_kosaraju::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 |
|
152 ms | 83 MB |
| Rust | max_random_00 |
|
786 ms | 77 MB |
| Rust | max_random_01 |
|
804 ms | 76 MB |
| Rust | max_random_02 |
|
777 ms | 76 MB |
| Rust | max_random_03 |
|
765 ms | 76 MB |
| Rust | max_random_04 |
|
756 ms | 76 MB |
| Rust | random_00 |
|
638 ms | 62 MB |
| Rust | random_01 |
|
709 ms | 69 MB |
| Rust | random_02 |
|
82 ms | 47 MB |
| Rust | random_03 |
|
573 ms | 41 MB |
| Rust | random_04 |
|
386 ms | 32 MB |