34 lines
755 B
Python
34 lines
755 B
Python
input = 825401
|
|
input_l = [int(c) for c in str(input)]
|
|
len_input = len(input_l)
|
|
|
|
scoreboard = [3, 7]
|
|
elf_1 = 0
|
|
elf_2 = 1
|
|
|
|
|
|
def do_round():
|
|
global scoreboard, elf_1, elf_2
|
|
e1 = scoreboard[elf_1]
|
|
e2 = scoreboard[elf_2]
|
|
s = e1 + e2
|
|
scoreboard += [int(c) for c in str(s)]
|
|
elf_1 = (elf_1 + 1 + e1) % len(scoreboard)
|
|
elf_2 = (elf_2 + 1 + e2) % len(scoreboard)
|
|
|
|
|
|
while len(scoreboard) < input+10:
|
|
do_round()
|
|
|
|
print(''.join([str(i) for i in scoreboard[input:input+10]])) # Part 1
|
|
|
|
while True:
|
|
do_round()
|
|
if scoreboard[-len_input:] == input_l:
|
|
print(len(scoreboard)-len_input) # Part 2
|
|
break
|
|
if scoreboard[-len_input-1:-1] == input_l: # Each round adds 1-2 recipes to end
|
|
print(len(scoreboard)-len_input-1) # Part 2
|
|
break
|
|
|