diff options
Diffstat (limited to '2015/06/puzzle-1.awk')
-rwxr-xr-x | 2015/06/puzzle-1.awk | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/2015/06/puzzle-1.awk b/2015/06/puzzle-1.awk new file mode 100755 index 0000000..97165cf --- /dev/null +++ b/2015/06/puzzle-1.awk @@ -0,0 +1,15 @@ +#!/usr/bin/env -S awk -f + +function setlights(val, toggle) +{ + for (i = from[1]; i <= to[1]; i++) { + for (j = from[2]; j <= to[2]; j++) + lights[i][j] = toggle ? (lights[i][j] ? 0 : 1) : val + } +} + +$1 == "toggle" { split($2, from, ","); split($4, to, ","); setlights(0, 1) } +$2 ~ /on|off/ { split($3, from, ","); split($5, to, ",") } +$2 == "on" { setlights(1, 0) } +$2 == "off" { setlights(0, 0) } +END { for (i = 0; i <= 999; i++) for (j = 0; j <= 999; j++) count += lights[i][j]; print count } |