31 lines
735 B
Python
31 lines
735 B
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import sys
|
||
|
|
||
|
input_file = sys.argv[1]
|
||
|
|
||
|
with open(input_file) as fd:
|
||
|
lines = [line.rstrip() for line in fd.readlines()]
|
||
|
|
||
|
height = len(lines)
|
||
|
width = len(lines[0])
|
||
|
|
||
|
stones = [int(stone) for stone in lines[0].split()]
|
||
|
|
||
|
for _ in range(25):
|
||
|
new_stones = []
|
||
|
for stone in stones:
|
||
|
stone_str = str(stone)
|
||
|
if stone == 0:
|
||
|
new_stones.append(1)
|
||
|
elif len(stone_str) % 2 == 0:
|
||
|
mid = int(len(stone_str) / 2)
|
||
|
new_stones.append(int(stone_str[:mid]))
|
||
|
new_stones.append(int(stone_str[mid:]))
|
||
|
else:
|
||
|
new_stones.append(stone * 2024)
|
||
|
stones = new_stones
|
||
|
# print(" ".join(str(stone) for stone in stones))
|
||
|
|
||
|
print(len(stones))
|