31 lines
706 B
Python
31 lines
706 B
Python
direction = [10, 1]
|
|
position = [0, 0]
|
|
|
|
def D(x, y):
|
|
def mv(n):
|
|
direction[0] += x*n
|
|
direction[1] += y*n
|
|
return mv
|
|
|
|
def F(n):
|
|
position[0] += direction[0]*n
|
|
position[1] += direction[1]*n
|
|
|
|
def R90():
|
|
global direction
|
|
direction = [direction[1], -1 * direction[0]]
|
|
|
|
def R(d):
|
|
def rt(n):
|
|
count = int(d*(n/90))
|
|
count = 4 + count if count < 0 else count
|
|
[R90() for a in range(0, count)]
|
|
return rt
|
|
|
|
methods = {"N": D(0, 1), "S": D(0, -1), "E": D(1, 0), "W": D(-1, 0), "L": R(-1), "R": R(1), "F": F}
|
|
|
|
[methods[s[0]](int(s[1:])) for s in open("input", "r").read().split("\n") if s]
|
|
|
|
print(position)
|
|
print(abs(position[0]) + abs(position[1]))
|