beats 100% at speed, 100% at memory, O(n^2/2) time, O(1) space intersection, max value
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nimpl Solution {\n\tpub fn largest_square_area(bottom_left: Vec<Vec<i32>>, top_right: Vec<Vec<i32>>) -> i64 {\n\t\tlet intersect = |bl1: &Vec<i32>, tr1: &Vec<i32>, bl2: &Vec<i32>, tr2: &Vec<i32>, ml: i32| {\n\t\t\tif tr2[0] - bl2[0] <= ml || tr2[1] - bl2[1] <= ml {\n\t\t\t\tNone // must smaller than current ml\n\t\t\t} else {\n\t\t\t\tlet (bl1_x, bl1_y, tr1_x, tr1_y) = (bl1[0], bl1[1], tr1[0], tr1[1]);\n\t\t\t\tlet (bl2_x, bl2_y, tr2_x, tr2_y) = (bl2[0], bl2[1], tr2[0], tr2[1]);\n\t\t\t\tif bl1_x >= tr2_x || bl2_x >= tr1_x || bl1_y >= tr2_y || bl2_y >= tr1_y {\n\t\t\t\t\tNone // No intersection\n\t\t\t\t} else { // There is an intersection\n\t\t\t\t\tlet width = tr1_x.min(tr2_x) - bl1_x.max(bl2_x);\n\t\t\t\t\tlet height = tr1_y.min(tr2_y) - bl1_y.max(bl2_y);\n\t\t\t\t\tSome(width.min(height))\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tlet mut ml = 0;\n\n\t\tbottom_left.iter().enumerate().zip(top_right.iter()).for_each(|((idx, bl1), tr1)| {\n\t\t\tif tr1[0] - bl1[0] <= ml || tr1[1] - bl1[1] <= ml {\n\t\t\t} else{\n\t\t\t\tbottom_left.iter().skip(idx+1).zip(top_right.iter().skip(idx+1)).for_each(|(bl2, tr2)| {\n\t\t\t\t\tif let Some(nml) = intersect(bl1, tr1, bl2, tr2, ml) {\n\t\t\t\t\t\tml = nml.max(ml);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tml as i64 * ml as i64\n\t}\n}\n\n```
['Rust']