#![allow(dead_code, unused, unused_variables, non_snake_case)] fn main() {} struct Solution; impl Solution { pub fn number_of_right_triangles(grid: Vec>) -> i64 { let (mut row, mut col) = (vec![0; grid.len()], vec![0; grid[0].len()]); for i in 0..grid.len() { for j in 0..grid[0].len() { if grid[i][j] == 1 { row[i] += 1; col[j] += 1; } } } let mut result = 0; for i in 0..grid.len() { for j in 0..grid[0].len() { if grid[i][j] == 1 { result += (row[i] - 1) * (col[j] - 1); } } } result } }