Submission #73708534
Source Code Expand
use proconio::input;
const MOD: usize = 998244353;
fn main() {
input! { n: usize, m: usize }
let mut edges = Vec::with_capacity(m);
for _ in 0..m {
input! { u: usize, v: usize }
edges.push((u - 1, v - 1));
}
let mut pow2 = vec![0usize; m + 1];
pow2[0] = 1;
for i in 1..=m {
pow2[i] = (pow2[i - 1] * 2) % MOD;
}
let mut dsu = ac_library::Dsu::new(n);
let mut removed_cost_sum = 0usize;
let mut component_count = n;
for i in (0..m).rev() {
let (u, v) = edges[i];
let edge_index = i + 1;
if !dsu.same(u, v) {
if component_count > 2 {
dsu.merge(u, v);
component_count -= 1;
} else {
removed_cost_sum = (removed_cost_sum + pow2[edge_index]) % MOD;
}
}
}
println!("{}", removed_cost_sum);
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Divide Graph |
| User | memoka |
| Language | Rust (rustc 1.89.0) |
| Score | 475 |
| Code Size | 928 Byte |
| Status | AC |
| Exec Time | 24 ms |
| Memory | 7492 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 475 / 475 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 02_perfect_00.txt, 02_perfect_01.txt, 02_perfect_02.txt, 02_perfect_03.txt, 02_perfect_04.txt, 02_perfect_05.txt, 02_perfect_06.txt, 02_perfect_07.txt, 02_perfect_08.txt, 03_tree_00.txt, 03_tree_01.txt, 03_tree_02.txt, 03_tree_03.txt, 03_tree_04.txt, 03_tree_05.txt, 03_tree_06.txt, 04_handmade_00.txt, 04_handmade_01.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 1928 KiB |
| 00_sample_01.txt | AC | 1 ms | 1932 KiB |
| 00_sample_02.txt | AC | 1 ms | 1840 KiB |
| 01_random_00.txt | AC | 15 ms | 6060 KiB |
| 01_random_01.txt | AC | 13 ms | 5448 KiB |
| 01_random_02.txt | AC | 12 ms | 4908 KiB |
| 01_random_03.txt | AC | 2 ms | 2252 KiB |
| 01_random_04.txt | AC | 15 ms | 5848 KiB |
| 01_random_05.txt | AC | 12 ms | 4800 KiB |
| 01_random_06.txt | AC | 10 ms | 4304 KiB |
| 01_random_07.txt | AC | 10 ms | 4336 KiB |
| 01_random_08.txt | AC | 15 ms | 5340 KiB |
| 01_random_09.txt | AC | 10 ms | 4404 KiB |
| 01_random_10.txt | AC | 22 ms | 7112 KiB |
| 01_random_11.txt | AC | 21 ms | 7088 KiB |
| 01_random_12.txt | AC | 23 ms | 7232 KiB |
| 01_random_13.txt | AC | 15 ms | 5440 KiB |
| 01_random_14.txt | AC | 20 ms | 6608 KiB |
| 02_perfect_00.txt | AC | 16 ms | 6416 KiB |
| 02_perfect_01.txt | AC | 17 ms | 6664 KiB |
| 02_perfect_02.txt | AC | 17 ms | 6596 KiB |
| 02_perfect_03.txt | AC | 17 ms | 6656 KiB |
| 02_perfect_04.txt | AC | 16 ms | 6540 KiB |
| 02_perfect_05.txt | AC | 17 ms | 6656 KiB |
| 02_perfect_06.txt | AC | 17 ms | 6576 KiB |
| 02_perfect_07.txt | AC | 17 ms | 6600 KiB |
| 02_perfect_08.txt | AC | 17 ms | 6692 KiB |
| 03_tree_00.txt | AC | 22 ms | 7360 KiB |
| 03_tree_01.txt | AC | 24 ms | 7380 KiB |
| 03_tree_02.txt | AC | 20 ms | 7436 KiB |
| 03_tree_03.txt | AC | 22 ms | 7424 KiB |
| 03_tree_04.txt | AC | 22 ms | 7296 KiB |
| 03_tree_05.txt | AC | 23 ms | 7492 KiB |
| 03_tree_06.txt | AC | 23 ms | 7344 KiB |
| 04_handmade_00.txt | AC | 1 ms | 2132 KiB |
| 04_handmade_01.txt | AC | 19 ms | 7400 KiB |