master
Tom Weber 2 years ago
parent 0e483e824f
commit 25a0b3611c

@ -0,0 +1,7 @@
1
2
-3
3
-2
0
4

@ -0,0 +1,23 @@
numbers = [int(i) for i in open("input.txt", "r").read().split()]
idx = [i for i in range(len(numbers))]
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)
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]))

@ -0,0 +1,32 @@
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]))

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save