From a8ceb21d34bac8227acf7be4dc8c87f404c40555 Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Thu, 8 Dec 2022 13:17:33 -0500 Subject: Solve day 8 part 2 --- 2022/day08.awk | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to '2022') diff --git a/2022/day08.awk b/2022/day08.awk index 35505e4..3ce1a50 100644 --- a/2022/day08.awk +++ b/2022/day08.awk @@ -19,6 +19,28 @@ function visible(x, y) { if (yy > bottom) return 1; return 0; } +function view(x, y) { + if (x == 1 || x == right) return 0; + if (y == 1 || y == bottom) return 0; + v = 1; + for (xx = x-1; xx > 1; --xx) { + if (m[xx,y] >= m[x,y]) break; + } + v *= x-xx; + for (xx = x+1; xx < right; ++xx) { + if (m[xx,y] >= m[x,y]) break; + } + v *= xx-x; + for (yy = y-1; yy > 1; --yy) { + if (m[x,yy] >= m[x,y]) break; + } + v *= y-yy; + for (yy = y+1; yy < bottom; ++yy) { + if (m[x,yy] >= m[x,y]) break; + } + v *= yy-y; + return v; +} BEGIN { FS = ""; } @@ -33,7 +55,9 @@ END { for (x = 1; x <= right; ++x) { for (y = 1; y <= bottom; ++y) { if (visible(x, y)) vis++; + if (view(x, y) > max) max = view(x, y); } } print vis; + print max; } -- cgit 1.4.1