* Solve 2015:16 "Aunt Sue" * Make 2023:08 future compatible Code used to work with another version of python. * Solve 2015:17 "No such Thing as Too much" * Solve 2015:18 "Like a GIF For Your Yard" Also solve 2015:06 just in case, was just a ref in the end. * Solve 2015:19 "Medicine for Rudolph" * Solve 2015:20 "Infinite Elves and Infinite Houses" * Solve 2023:21 "RPG Simulator 20XX" * Solve 2015:22 "Wizard Simulator 20XX" * Solve 2015:23 "Opening the Turing Lock" * Solve 2015:25 "Let it Snow" Wrote p2rc and rc2p just for academic purposes. Puzzles could be solved anyway. * Solve 2015:24 "Hangs in the Balance" --------- Co-authored-by: Anders Englöf Ytterström <anders@playmaker.ai>
51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
from collections import defaultdict
|
|
from solutions import BaseSolution
|
|
|
|
|
|
class Solution(BaseSolution):
|
|
input_file = "20.txt"
|
|
|
|
def __str__(self):
|
|
return "Day 20: Infinite Elves and Infinite Houses"
|
|
|
|
def solve(self, pi):
|
|
S = 36_000_000
|
|
# hn = 831601
|
|
# x1 = defaultdict(int)
|
|
# for i in range(1, hn):
|
|
# for n in range(0, hn, i):
|
|
# if n == 0:
|
|
# continue
|
|
# x1[n] += i * 10
|
|
# for k, v in x1.items():
|
|
# if v >= S:
|
|
# print(k, v)
|
|
hn = 885000
|
|
hc = 50
|
|
x2 = defaultdict(int)
|
|
for i in range(1, hn):
|
|
for n in range(0, hc * i + 1, i):
|
|
if n == 0:
|
|
continue
|
|
x2[n] += i * 11
|
|
# p1 = max(x1.items(), key=lambda y: y[1])[0]
|
|
p2 = min(filter(lambda x: x[1] >= S, x2.items()), key=lambda y: y[0])[0]
|
|
return 0, p2
|
|
|
|
def solve_again(self, pi):
|
|
return pi
|
|
|
|
def parse_input(self, data):
|
|
return data.strip()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
solution = Solution()
|
|
# solution.show_results()
|
|
|
|
dummy = """
|
|
replace me
|
|
""".strip()
|
|
|
|
print(solution.solve(dummy))
|
|
# solution.solve_again(dummy)
|