from lib import get_data def part_1(data): rs = [] for line in data.splitlines(): rl, ru = 0, 127 cl, cu = 0, 7 for c in line.strip(): rh = (ru - rl) // 2 ch = (cu - cl) // 2 if c == "B": rl = rl + rh + 1 elif c == "F": ru = rl + rh elif c == "R": cl = cl + ch + 1 elif c == "L": cu = cl + ch else: assert False assert rl == ru assert cl == cu r_new = rl * 8 + cl rs.append(r_new) print(max(rs)) rs = sorted(rs) for i in range(len(rs) - 1): if rs[i] + 1 != rs[i + 1]: print(rs[i] + 1) def main(): data = get_data(__file__) part_1(data) if __name__ == "__main__": main()