This documentation is automatically generated by competitive-verifier/competitive-verifier
// verification-helper: PROBLEM https://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_3_C
use proconio::input;
use strongly_connected_components_kosaraju::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 });
}
}
| Env | Name | Status | Elapsed | Memory |
|---|---|---|---|---|
| Rust | 00_sample_00.in |
|
4 ms | 2 MB |
| Rust | 01_small_00.in |
|
3 ms | 2 MB |
| Rust | 01_small_01.in |
|
3 ms | 2 MB |
| Rust | 01_small_02.in |
|
3 ms | 2 MB |
| Rust | 01_small_03.in |
|
3 ms | 2 MB |
| Rust | 02_medium_00.in |
|
3 ms | 2 MB |
| Rust | 02_medium_01.in |
|
3 ms | 2 MB |
| Rust | 03_sparse_00.in |
|
3 ms | 2 MB |
| Rust | 03_sparse_01.in |
|
3 ms | 2 MB |
| Rust | 03_sparse_02.in |
|
3 ms | 2 MB |
| Rust | 03_sparse_03.in |
|
4 ms | 2 MB |
| Rust | 04_dense_00.in |
|
3 ms | 2 MB |
| Rust | 04_dense_01.in |
|
3 ms | 2 MB |
| Rust | 04_dense_02.in |
|
4 ms | 2 MB |
| Rust | 04_dense_03.in |
|
6 ms | 2 MB |
| Rust | 05_rand_00.in |
|
7 ms | 2 MB |
| Rust | 05_rand_01.in |
|
7 ms | 2 MB |
| Rust | 05_rand_02.in |
|
10 ms | 3 MB |
| Rust | 06_linear_00.in |
|
37 ms | 5 MB |
| Rust | 06_linear_01.in |
|
37 ms | 5 MB |
| Rust | 07_linear_00.in |
|
40 ms | 6 MB |
| Rust | 07_linear_01.in |
|
39 ms | 6 MB |
| Rust | 08_grid_00.in |
|
45 ms | 5 MB |
| Rust | 08_grid_01.in |
|
68 ms | 6 MB |