You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
911 B
Python
44 lines
911 B
Python
6 years ago
|
state = [3, 7]
|
||
|
|
||
|
puzzle_in = '077201'
|
||
|
|
||
|
elf_1 = 0
|
||
|
elf_2 = 1
|
||
|
|
||
|
def print_state():
|
||
|
out = ''
|
||
|
for i, el in enumerate(state):
|
||
|
if i == elf_1:
|
||
|
out += '(' + str(el) + ')'
|
||
|
elif i == elf_2:
|
||
|
out += '[' + str(el) + ']'
|
||
|
else:
|
||
|
out += ' ' + str(el) + ' '
|
||
|
print(out)
|
||
|
|
||
|
while 1:
|
||
|
val_1 = state[elf_1]
|
||
|
val_2 = state[elf_2]
|
||
|
|
||
|
state.extend([ int(x) for x in list(str(val_1 + val_2)) ])
|
||
|
|
||
|
test_1 = state[-6:]
|
||
|
test_2 = state[-7:-1]
|
||
|
|
||
|
# print(''.join([str(x) for x in test_1]), ''.join([str(x) for x in test_2]), puzzle_in)
|
||
|
|
||
|
if ''.join([str(x) for x in test_1]) == puzzle_in:
|
||
|
res = len(state) - 6
|
||
|
break
|
||
|
|
||
|
if ''.join([str(x) for x in test_2]) == puzzle_in:
|
||
|
res = len(state) - 7
|
||
|
break
|
||
|
|
||
|
elf_1 = (1 + elf_1 + val_1) % len(state)
|
||
|
elf_2 = (1 + elf_2 + val_2) % len(state)
|
||
|
|
||
|
# print_state()
|
||
|
|
||
|
print(res)
|