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…
Reference in new issue