aboutsummaryrefslogtreecommitdiff
path: root/2015/03/puzzle-2.awk
diff options
context:
space:
mode:
Diffstat (limited to '2015/03/puzzle-2.awk')
-rw-r--r--2015/03/puzzle-2.awk11
1 files changed, 11 insertions, 0 deletions
diff --git a/2015/03/puzzle-2.awk b/2015/03/puzzle-2.awk
new file mode 100644
index 0000000..0857009
--- /dev/null
+++ b/2015/03/puzzle-2.awk
@@ -0,0 +1,11 @@
+BEGIN { sx = sy = rx = ry = 1; homes[sx][sy] = 1; acc = 1 }
+ { santa = santa ? 0 : 1 }
+santa == 0 && $0 == "^" { if (!homes[rx][++ry]++) acc++; next }
+santa == 0 && $0 == ">" { if (!homes[++rx][ry]++) acc++; next }
+santa == 0 && $0 == "v" { if (!homes[rx][--ry]++) acc++; next }
+santa == 0 && $0 == "<" { if (!homes[--rx][ry]++) acc++; next }
+santa == 1 && $0 == "^" { if (!homes[sx][++sy]++) acc++; next }
+santa == 1 && $0 == ">" { if (!homes[++sx][sy]++) acc++; next }
+santa == 1 && $0 == "v" { if (!homes[sx][--sy]++) acc++; next }
+santa == 1 && $0 == "<" { if (!homes[--sx][sy]++) acc++; next }
+END { print acc }