lines = ((x[0], int(x[1:].strip())) for x in open("input.txt")) pos = 0 direction = 10 + 1j targets = {"E": 1, "N": 1j, "W": -1, "S": -1j} angles = {"L": 1, "R": -1} forward = {"F": 1} for cmd, num in lines: direction += targets.get(cmd, 0) * num times = angles.get(cmd, 0) * num / 90 direction = direction * 1j ** times pos += forward.get(cmd, 0) * direction * num print(int(abs(pos.real) + abs(pos.imag)))