46 lines
932 B
Python
46 lines
932 B
Python
|
#!/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)
|