fn is_min(mat: &[Vec], col: usize, row: usize) -> bool { (0..mat.len()).all(|r| mat[r][col] >= mat[row][col]) } pub fn find_saddle_points(input: &[Vec]) -> Vec<(usize, usize)> { let mut res = vec![]; for (row,relem) in input.iter().enumerate() { let m = relem.iter().max(); for (col,celem) in relem.iter().enumerate() { if (m == Some(celem)) && is_min(input,col,row) { res.push((row,col)); } } } res }