summary refs log tree commit diff homepage
path: root/2022/day15.awk
blob: 08404876c4a10ea55cc803dbb14bb76a6823571c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
BEGIN {
	FS = "[ =,:]+";
	y = 2000000;
}
function abs(x) {
	return (x < 0 ? -x : x);
}
function dist(x1, y1, x2, y2) {
	return abs(x1 - x2) + abs(y1 - y2);
}
{
	if ($14 == y) B[$12] = 1;
	r = dist($4, $6, $12, $14);
	if (abs(y - $6) <= r) {
		n = r - abs(y - $6);
		for (x = $4-n; x <= $4+n; ++x) {
			Y[x] = 1;
		}
	}
}
END {
	for (x in B) {
		delete Y[x];
	}
	print length(Y);
}