advent24-llm / day11 /solution_gemini-1.5-pro.py
jerpint's picture
Add solution files
a4da721
raw
history blame contribute delete
967 Bytes
def solve():
with open("./input.txt", "r") as f:
initial_stones = [int(x) for x in f.readline().split()]
def blink(stones):
new_stones = []
for stone in stones:
if stone == 0:
new_stones.append(1)
elif len(str(stone)) % 2 == 0:
s = str(stone)
mid = len(s) // 2
left = int(s[:mid])
right = int(s[mid:])
new_stones.append(left)
new_stones.append(right)
else:
new_stones.append(stone * 2024)
return new_stones
# Part 1: 25 blinks
stones = initial_stones[:] # Create a copy to avoid modifying the original
for _ in range(25):
stones = blink(stones)
print(len(stones))
# Part 2: 75 blinks
stones = initial_stones[:] # Reset to the initial state
for _ in range(75):
stones = blink(stones)
print(len(stones))
solve()