◂ 5 décembre 2022 ▸
Supply Stacks : Déplacer des caisses sur des piles
[Q] [B] [H] …
[F] [W] [D] [Q] [S] …
[D] [C] [N] [S] [G] [F] …
⋮
- code.py
f = open("input.txt", 'r')
lines = f.readlines() # ne pas faire un strip comme d'habitude, car les colonnes vides sont importantes
piles1 = [[] for i in range(9)] # ne pas faire 9*[[]], car sinon chaque pile est le même tableau
nbLignesEnTete = 0
for line in lines:
nbLignesEnTete += 1
if line.startswith(" 1"):
break
for i in range(len(piles1)):
numCar = 1 + 4 * i
if line[numCar] != ' ':
piles1[i].append(line[numCar])
piles2 = piles1[:] # pas besoin de faire une copie des colonnes piles2 = [p[:] for p in piles1]
for line in lines[nbLignesEnTete + 1:]:
[_, nb, _, iFrm, _, iTo] = line.split()
nb = int(nb)
iFrm = int(iFrm) - 1
iTo = int(iTo) - 1
# Possible aussi : [nb,iFrm,iTo] = map(int, line.split()[1::2]) et iFrm -= 1, iTo -= 1
piles1[iTo] = piles1[iFrm][nb-1::-1] + piles1[iTo]
piles1[iFrm] = piles1[iFrm][nb:]
piles2[iTo] = piles2[iFrm][:nb] + piles2[iTo]
piles2[iFrm] = piles2[iFrm][nb:]
print("Réponse partie 1:", ''.join([p[0] for p in piles1]))
print("Réponse partie 2:", ''.join([p[0] for p in piles2]))