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