aboutsummaryrefslogtreecommitdiff
path: root/2015/06/puzzle-1.awk
blob: 97165cf016784a6c1e8f5273d11f47e2b9b9cd3b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 }