2
pub fn max_num_edges_to_remove(n: i32, edges: Vec<Vec<i32>>) -> i32 {3
let mut alice: Vec<_> = (0..=n as usize).collect();4
let mut bob: Vec<_> = (0..=n as usize).collect();6
fn uf_find(i: usize, uf: &mut [usize]) -> usize {8
uf[i] = uf_find(uf[i], uf);12
fn uf_union(i: usize, j: usize, uf: &mut [usize]) -> bool {13
let i = uf_find(i, uf);14
let j = uf_find(j, uf);28
let a_change = uf_union(edge[1] as usize, edge[2] as usize, &mut alice);29
let b_change = uf_union(edge[1] as usize, edge[2] as usize, &mut bob);30
match (a_change, b_change) {49
if uf_union(edge[1] as usize, edge[2] as usize, &mut alice) {54
} else if edge[0] == 2 {55
if uf_union(edge[1] as usize, edge[2] as usize, &mut bob) {63
if a_count < n || b_count < n {