AdventOfCode/2018/day11.py

39 lines
772 B
Python

import numpy as np
input = 4455
fuel_cells = np.zeros((300,300), dtype=np.int64)
for y in range(300):
fuel_cells[:,y] = y+1
for x in range(300):
fuel_cells[x,:] *= x+11
fuel_cells += input
for x in range(300):
fuel_cells[x,:] *= x+11
fuel_cells //= 100
fuel_cells %= 10
fuel_cells -= 5
max_power = 0
max_idx = (0,0)
for x in range(298):
for y in range(298):
val = fuel_cells[x:x+3, y:y+3].sum()
if val > max_power:
max_power = val
max_idx = (x+1,y+1)
print(max_idx) # Part 1
max_power = 0
max_idx = (0,0,0)
for x in range(298):
for y in range(298):
for s in range(3, 301-max(x,y)):
val = fuel_cells[x:x+s, y:y+s].sum()
if val > max_power:
max_power = val
max_idx = (x+1,y+1,s)
print(max_idx) # Part 2