aboutsummaryrefslogtreecommitdiff
path: root/2015/06/puzzle-2.awk
diff options
context:
space:
mode:
authorThomas Voss <thomasvoss@live.com> 2021-10-29 23:02:39 +0200
committerThomas Voss <thomasvoss@live.com> 2021-10-29 23:02:39 +0200
commite7c9108b95e39d7ea5a29ae06d619c4727f11027 (patch)
tree237261eef3afd0720be77dbcbb9599fa66a24b67 /2015/06/puzzle-2.awk
Initial commit
Diffstat (limited to '2015/06/puzzle-2.awk')
-rwxr-xr-x2015/06/puzzle-2.awk17
1 files changed, 17 insertions, 0 deletions
diff --git a/2015/06/puzzle-2.awk b/2015/06/puzzle-2.awk
new file mode 100755
index 0000000..97ae1f8
--- /dev/null
+++ b/2015/06/puzzle-2.awk
@@ -0,0 +1,17 @@
+#!/usr/bin/env -S awk -f
+
+function setlights(val)
+{
+ for (i = from[1]; i <= to[1]; i++) {
+ for (j = from[2]; j <= to[2]; j++) {
+ if (!(val == -1 && lights[i][j] == 0))
+ lights[i][j] += val
+ }
+ }
+}
+
+$1 == "toggle" { split($2, from, ","); split($4, to, ","); setlights(2) }
+$2 ~ /on|off/ { split($3, from, ","); split($5, to, ",") }
+$2 == "on" { setlights(1) }
+$2 == "off" { setlights(-1) }
+END { for (i = 0; i <= 999; i++) for (j = 0; j <= 999; j++) count += lights[i][j]; print count }