From fa26f694d8cf98272763952a698301ee9935c19e Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 26 Jun 2025 09:47:23 +0200 Subject: Added 2022, first few problems --- 2022/08/b.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 2022/08/b.rs (limited to '2022/08/b.rs') diff --git a/2022/08/b.rs b/2022/08/b.rs new file mode 100644 index 0000000..5f7bce8 --- /dev/null +++ b/2022/08/b.rs @@ -0,0 +1,47 @@ +use std::cmp::max; +mod common; +use common::*; + +fn count_visible_from(grid: &Grid, i0: usize, j0: usize) -> usize { + let x = grid[i0][j0].0; + let mut top = 0; + for i in (0..i0).rev() { + top += 1; + if grid[i][j0].0 >= x { break; } + } + + let mut bottom = 0; + for i in i0+1..grid.len() { + bottom += 1; + if grid[i][j0].0 >= x { break; } + } + + let mut left = 0; + for j in (0..j0).rev() { + left += 1; + if grid[i0][j].0 >= x { break; } + } + + let mut right = 0; + for j in j0+1..grid[0].len() { + right += 1; + if grid[i0][j].0 >= x { break; } + } + + top * bottom * left * right +} + +fn max_view_factor(grid: &Grid) -> usize { + let mut m = 0; + for i in 0..grid.len() { + for j in 0..grid[0].len() { + m = max(m, count_visible_from(grid, i, j)); + } + } + m +} + +fn main() { + let grid = read_grid_from_stdin(); + println!("{}", max_view_factor(&grid)); +} -- cgit v1.3