#!/usr/bin/env python3 import sys L = [] with open(sys.argv[1], 'r') as f: L = f.readlines() L = [x.strip() for x in L] # part 2 ids = [] # part 1 highestId = 0 for l in L: row = [0, 128] col = [0, 8] for i in range(10): if i < 7: if l[i] == 'F': row[1] -= (row[1] - row[0]) / 2 # print('F') else: row[0] += (row[1] - row[0]) / 2 # print('B') # print(row) else: if l[i] == 'L': col[1] -= (col[1] - col[0]) / 2 else: col[0] += (col[1] - col[0]) / 2 ids.append(row[0] * 8 + col[0]) if ids[-1] > highestId: highestId = ids[-1] print(highestId) # part 2 ids.sort() prevId = ids[0] missingPrevIds = [] for id in ids: if prevId != id and prevId + 1 != id: missingPrevIds.append(id) prevId = id print(missingPrevIds)