53 lines
945 B
Python
53 lines
945 B
Python
from lib import get_data, str_to_ints
|
|
from d9 import Amp
|
|
|
|
|
|
def isin(xs, x, y):
|
|
a = Amp(xs, 100)
|
|
a.feed(x)
|
|
a.feed(y)
|
|
a.go()
|
|
return a.pop()
|
|
|
|
|
|
def part_1(data):
|
|
xs = str_to_ints(data)
|
|
r = 0
|
|
for y in range(50):
|
|
for x in range(50):
|
|
o = isin(xs, x, y)
|
|
if o == 1:
|
|
print("#", end="")
|
|
else:
|
|
print(" ", end="")
|
|
r += o
|
|
print()
|
|
print(r)
|
|
|
|
|
|
def part_2(data):
|
|
xs = str_to_ints(data)
|
|
off = 99
|
|
x, y = 3, 4
|
|
while True:
|
|
y += 1
|
|
while True:
|
|
o = isin(xs, x, y)
|
|
if o == 1:
|
|
break
|
|
x += 1
|
|
|
|
if isin(xs, x, y - off) and isin(xs, x + off, y - off) and isin(xs, x + off, y):
|
|
print(x * 10_000 + y - off)
|
|
break
|
|
|
|
|
|
def main():
|
|
data = get_data(__file__)
|
|
part_1(data)
|
|
part_2(data)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|