You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
52 lines
1.3 KiB
2 years ago
|
with open('input20.txt','r') as f:
|
||
|
inp = f.read().splitlines(keepends=False)
|
||
|
|
||
|
sequence = []
|
||
|
|
||
|
for i in range(len(inp)):
|
||
|
if int(inp[i]) == 0:
|
||
|
zero = (i, int(inp[i]))
|
||
|
sequence.append((i, int(inp[i])))
|
||
|
numbers = sequence.copy()
|
||
|
|
||
|
for number in sequence:
|
||
|
if sequence.count(number) > 1:
|
||
|
print('!')
|
||
|
|
||
|
for number in numbers:
|
||
|
#print(number[0])
|
||
|
index = sequence.index(number)
|
||
|
_number = number[1]
|
||
|
newIndex = index + _number
|
||
|
while not (len(sequence) * -1) <= newIndex < len(sequence):
|
||
|
if newIndex < (len(sequence) * -1):
|
||
|
newIndex += len(sequence)
|
||
|
if newIndex >= len(sequence):
|
||
|
newIndex -= len(sequence) - 1
|
||
|
if newIndex == 0:
|
||
|
newIndex = len(sequence) - 1
|
||
|
elif newIndex < 0:
|
||
|
newIndex = len(sequence) -1 + newIndex
|
||
|
if _number >= len(sequence):
|
||
|
newIndex += 1
|
||
|
if _number <= (len(sequence)* -1):
|
||
|
newIndex -= 1
|
||
|
if newIndex > index:
|
||
|
newIndex += 1
|
||
|
sequence.insert(newIndex, number)
|
||
|
sequence.pop(index)
|
||
|
else:
|
||
|
sequence.pop(index)
|
||
|
sequence.insert(newIndex, number)
|
||
|
#print(sequence)
|
||
|
|
||
|
|
||
|
number = sequence.index(zero) + 1000
|
||
|
_sum = 0
|
||
|
for i in range(3):
|
||
|
number %= len(sequence)
|
||
|
#print(sequence[number])
|
||
|
_sum += sequence[number][1]
|
||
|
number += 1000
|
||
|
|
||
|
print(_sum)
|