41 lines
849 B
Python
41 lines
849 B
Python
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()
|