summary refs log tree commit diff homepage
path: root/2022
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2022-12-12 11:50:34 -0500
committerJune McEnroe <june@causal.agency>2022-12-12 11:50:34 -0500
commitb14bb05c4d0b8fb97d5e644c014b25828b851a5d (patch)
treefc78d9a6e1e6a1fde01ed9e21859d5f3c64ad424 /2022
parentSolve day 12 part 1 (diff)
downloadaoc-b14bb05c4d0b8fb97d5e644c014b25828b851a5d.tar.gz
aoc-b14bb05c4d0b8fb97d5e644c014b25828b851a5d.zip
Solve day 12 part 2
Diffstat (limited to '2022')
-rw-r--r--2022/day12.awk36
1 files changed, 36 insertions, 0 deletions
diff --git a/2022/day12.awk b/2022/day12.awk
index 265fad6..314ce87 100644
--- a/2022/day12.awk
+++ b/2022/day12.awk
@@ -55,4 +55,40 @@ END {
 		delete N[i];
 	}
 	print N[i];
+	delete Q;
+	delete N;
+	delete V;
+	l = 1;
+	Q[l] = E;
+	N[l] = 0;
+	for (i = 1; Q[i]; ++i) {
+		split(Q[i], a, ",");
+		x = a[1];
+		y = a[2];
+		n = N[i];
+		if (m[x,y] == 1) break;
+		if (x > 1 && !V[x-1,y] && m[x-1,y] >= m[x,y]-1) {
+			V[x-1,y] = 1;
+			Q[++l] = x-1 "," y;
+			N[l] = n+1;
+		}
+		if (x < w && !V[x+1,y] && m[x+1,y] >= m[x,y]-1) {
+			V[x+1,y] = 1;
+			Q[++l] = x+1 "," y;
+			N[l] = n+1;
+		}
+		if (y > 1 && !V[x,y-1] && m[x,y-1] >= m[x,y]-1) {
+			V[x,y-1] = 1;
+			Q[++l] = x "," y-1;
+			N[l] = n+1;
+		}
+		if (y < h && !V[x,y+1] && m[x,y+1] >= m[x,y]-1) {
+			V[x,y+1] = 1;
+			Q[++l] = x "," y+1;
+			N[l] = n+1;
+		}
+		delete Q[i];
+		delete N[i];
+	}
+	print N[i];
 }
roe 2021-02-08Tweak trackpad scaling, mouse accelerationJune McEnroe This feels more comfortable. 2021-02-08Use xsel in up and add it do install.shJune McEnroe 2021-02-07Swap root window coloursJune McEnroe 2021-02-07Add -X flag to install X stuff on OpenBSDJune McEnroe 2021-02-07Adjust brightness by smaller incrementsJune McEnroe 2021-02-07Fix cwm window cycling, move big by defaultJune McEnroe 2021-02-07Use class names for Foreground, Background, BorderColorJune McEnroe I'm not really sure what difference this makes, but it seems like the right thing to do to be generic? 2021-02-07Add simple battery status and clock to xsessionJune McEnroe I love how simple this is. 2021-02-07Set cursor theme and sizeJune McEnroe 2021-02-07Use scrot for up -s if no screencaptureJune McEnroe Still missing putting the URL in an X selection. 2021-02-07Enable mouse acceleration in XJune McEnroe 2021-02-07Set colours for Xt and cwmJune McEnroe And increase XTerm internalBorder. 2021-02-07Set urgency on bell in xtermJune McEnroe 2021-02-07Add bindings for brightness controlJune McEnroe Weirdly the Fn key doesn't change how the F row registers... I wonder if I can do something about that. 2021-02-07Set X key repeat rateJune McEnroe 2021-02-07Bump font size to 12June McEnroe 11 is what I use on macOS, but I feel like my eyes are working harder here. 2021-02-07Fully configure and rebind cwmJune McEnroe This is sort of a mix of trying to emulate macOS somewhat for my muscle memory and just rebinding some of the cwm defaults to use 4- rather than M-. 2021-02-07Add BintiJune McEnroe 2021-02-07Finish configuring xtermJune McEnroe 2021-02-06Enable tapping, reverse scroll, set scaling in wsconsctlJune McEnroe 2021-02-06Set root window to black on purple snowJune McEnroe 2021-02-06Add xmodmap configurationJune McEnroe 2021-02-06Add initial OpenBSD X configurationJune McEnroe cwm still needs a lot more rebinding, and I need to actually look at its other options. xterm definitely still needs some configuration, but I at least managed to get it to use a decent looking font. Very happy that OpenBSD includes Luxi Mono, which is what my usual font, Go Mono, is based on anyway. Still missing is xmodmap and such. 2021-02-06Add xterm output to schemeJune McEnroe