| @@ -0,0 +1,22 @@ | |||
| text = open(0).read() | |||
| cycles = [1] | |||
| for ln in map(str.split, text.splitlines()): | |||
| match ln: | |||
| case ['addx', i]: | |||
| cycles.extend([0, int(i)]) | |||
| case ['noop']: | |||
| cycles.extend([0]) | |||
| ans1 = 0 | |||
| ans2, W, H = '', 40, 6 | |||
| for y in range(H): | |||
| for x in range(W): | |||
| i = 1 + y * W + x | |||
| p = sum(cycles[:i]) | |||
| if i % 40 == 20: | |||
| ans1 += i * p | |||
| ans2 += '##' if abs(x - p) <= 1 else ' ' | |||
| ans2 += '\n' | |||
| print(ans1) | |||
| print(ans2) | |||