summary refs log tree commit diff homepage
path: root/2022/day07.awk
blob: 4143a8bf0f15884c8030141eb51149c8fe04f1db (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
27
function parent(dir) {
	p = match(dir, "/[^/]+$");
	return substr(dir, 1, p-1);
}
/\$ cd \// {
	cwd = "/";
	next;
}
/\$ cd \.\./ {
	cwd = parent(cwd);
	next;
}
/\$ cd/ {
	cwd = cwd "/" $3;
}
/^[0-9]+/ {
	for (dir = cwd; dir != ""; dir = parent(dir)) {
		dirs[dir] += $1;
	}
}
END {
	for (dir in dirs) {
		if (dirs[dir] > 100000) continue;
		sum += dirs[dir];
	}
	print sum;
}