[Python/2017] Move solutions into .py files

This commit is contained in:
Felix Bargfeldt 2023-10-29 13:29:25 +01:00
parent fbc5fda60f
commit 7b1efc0d9c
Signed by: Defelo
GPG key ID: 2A05272471204DD3
51 changed files with 1100 additions and 4546 deletions

55
Python/2017/10.py Normal file
View file

@ -0,0 +1,55 @@
from lib import *
input = read_input(2017, 10).strip()
nums = [*range(256)]
pos = 0
skip = 0
def rev(a, b):
a %= len(nums)
b = (b - a) % len(nums)
nums[:] = nums[a:] + nums[:a]
nums[:b] = nums[:b][::-1]
nums[:] = nums[-a:] + nums[:-a]
for length in map(int, input.split(",")):
rev(pos, pos + length)
pos += length + skip
skip += 1
print(nums[0] * nums[1])
lengths = [*map(ord, input), 17, 31, 73, 47, 23]
nums = [*range(256)]
pos = 0
skip = 0
def rev(a, b):
a %= len(nums)
b = (b - a) % len(nums)
nums[:] = nums[a:] + nums[:a]
nums[:b] = nums[:b][::-1]
nums[:] = nums[-a:] + nums[:-a]
for _ in range(64):
for length in lengths:
rev(pos, pos + length)
pos += length + skip
skip += 1
dense = []
for i in range(16):
x = 0
for j in range(16):
x ^= nums[i * 16 + j]
dense.append(x)
print("".join(f"{x:02x}" for x in dense))