Just a runnable solution
Code\n\nimpl Solution {\n    pub fn order_of_largest_plus_sign(n: i32, mines: Vec<Vec<i32>>) -> i32 {\n        let n = n as usize;\n        let mut grid = vec![
# Code\n```\nimpl Solution {\n    pub fn order_of_largest_plus_sign(n: i32, mines: Vec<Vec<i32>>) -> i32 {\n        let n = n as usize;\n        let mut grid = vec![vec![1; n]; n];\n        for mine in mines {\n            grid[mine[0] as usize][mine[1] as usize] = 0;\n        }\n\n        let mut left = vec![vec![0; n]; n];\n        let mut right = vec![vec![0; n]; n];\n        let mut up = vec![vec![0; n]; n];\n        let mut down = vec![vec![0; n]; n];\n\n        for i in 0..n {\n            for j in 0..n {\n                if grid[i][j] == 1 {\n                    left[i][j] = if j == 0 { 1 } else { left[i][j - 1] + 1 };\n                    up[i][j] = if i == 0 { 1 } else { up[i - 1][j] + 1 };\n                }\n            }\n        }\n\n        for i in (0..n).rev() {\n            for j in (0..n).rev() {\n                if grid[i][j] == 1 {\n                    right[i][j] = if j == n - 1 { 1 } else { right[i][j + 1] + 1 };\n                    down[i][j] = if i == n - 1 { 1 } else { down[i + 1][j] + 1 };\n                }\n            }\n        }\n\n        let mut ans = 0;\n        for i in 0..n {\n            for j in 0..n {\n                let len = std::cmp::min(left[i][j], std::cmp::min(right[i][j], std::cmp::min(up[i][j], down[i][j])));\n                ans = std::cmp::max(ans, len);\n            }\n        }\n\n        ans as i32\n    }\n}\n```
['Rust']