adventofcode

https://adventofcode.com/
Log | Files | Refs

puzzle19.py (868B)


      1 with open('files/puzzle16.txt') as f:
      2     moves = f.read().split(',')
      3 
      4 programs = list("abcdefghijklmnop")
      5 permutations = []
      6 
      7 for d in range(1, 1000):
      8     permutations.append("".join(programs))
      9     for move in moves:
     10         if move[0] == 's':
     11             programs = programs[len(programs) - int(move[1:]):] + programs[:len(programs) - int(move[1:])]
     12         if move[0] == 'x':
     13             indices = [int(i) for i in move[1:].split('/')]
     14             programs[indices[0]], programs[indices[1]] = programs[indices[1]], programs[indices[0]]
     15         if move[0] == 'p':
     16             partners = move[1:].split('/')
     17             i, j = programs.index(partners[0]), programs.index(partners[1])
     18             programs[i], programs[j] = programs[j], programs[i]
     19     if "".join(programs) == "abcdefghijklmnop":
     20         break
     21 
     22 print permutations[1]
     23 print permutations[1000000000 % d]