1er décembre 2025 ▸
Secret Entrance : Faire tourner une molette dans un sens ou l'autre et compter combien de fois elle passe devant le 0.
R27
R47
R21
L37
R5
L48
⋮
- code_bruteforce.py
- code_optim.py
START_POS = 50
MAX_ANGLE = 100
with open("input.txt", 'r', encoding='utf-8') as f:
numbers = []
for line in f.read().split():
if line[0] == 'R':
sign = 1
elif line[0] == 'L':
sign = -1
else:
print("Bad input line:", line)
exit(1)
numbers.append(sign * int(line[1:]))
#numbers = [(1 if line[0]=='R' else -1)*int(line[1:]) for line in f.read().split()]
### Naive but effective way ###
angle = START_POS
nb1 = 0
nb2 = 0
for val in numbers:
for k in range(abs(val)):
if val < 0:
angle -= 1
else:
angle += 1
angle %= MAX_ANGLE
if angle == 0:
nb2 += 1
if angle == 0:
nb1 += 1
print("Réponse partie 1:", nb1)
print("Réponse partie 2:", nb2)