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.
33 lines
974 B
33 lines
974 B
key = 811589153
|
|
numbers = [int(i) * key for i in open("input.txt", "r").read().split()]
|
|
idx = [i for i in range(len(numbers))]
|
|
|
|
|
|
def mix(numbers, idx):
|
|
for i in range(len(idx)):
|
|
index = idx.index(i)
|
|
n = numbers[index]
|
|
if n == 0:
|
|
continue
|
|
new_index = index + n
|
|
if abs(new_index) > len(numbers) - 1:
|
|
new_index = new_index % (len(numbers) - 1)
|
|
if new_index == 0:
|
|
new_index = len(numbers) - 1
|
|
elif new_index == len(numbers) - 1:
|
|
new_index = 0
|
|
numbers.pop(index)
|
|
idx.pop(index)
|
|
numbers.insert(new_index, n)
|
|
idx.insert(new_index, i)
|
|
# idx = idx[numbers.index(0) :] + idx[: numbers.index(0)]
|
|
return numbers, idx
|
|
|
|
|
|
for i in range(10):
|
|
numbers, idx = mix(numbers, idx)
|
|
|
|
rotated = numbers[numbers.index(0) :] + numbers[: numbers.index(0)]
|
|
rest = [x % len(rotated) for x in [1000, 2000, 3000]]
|
|
print(sum([rotated[r] for r in rest]))
|