Files
aocpy/2016/d8.py
2024-03-29 09:19:48 -04:00

54 lines
1.2 KiB
Python

from lib import *
data = open(0).read().strip()
cols = 50
rows = 6
pxs = []
def display(pxs):
for r in range(rows):
row = ""
for c in range(cols):
if (r, c) in pxs:
row += "#"
else:
row += "."
print(row)
print()
for line in data.splitlines():
if "rect" in line:
col, row = str_to_ints(line)
for r in range(row):
for c in range(col):
if r < rows and c < cols:
pxs.append((r, c))
elif "row" in line:
npxs = []
row, offset = str_to_ints(line)
for (r, c) in pxs:
if r == row:
nc = (c + offset) % cols
npxs.append((r, nc))
else:
npxs.append((r, c))
pxs = npxs
elif "column" in line:
npxs = []
col, offset = str_to_ints(line)
for (r, c) in pxs:
if c == col:
nr = (r + offset) % rows
npxs.append((nr, c))
else:
npxs.append((r, c))
pxs = npxs
else:
assert False
pxs = list(set(pxs))
print(len(pxs))
display(pxs) # EOARGPHYAO