master
Raw Download raw file
 1
 2def loc (d) :
 3  return (d[0]-d[2]), (d[1]-d[3])
 4
 5EBHQ_dir = "L5, R1, R3, L4, R3, R1, L3, L2, R3, L5, L1, L2, R5, L1, R5, R1, L4, R1, R3, L4, L1, R2, R5, R3, R1, R1, L1, R1, L1, L2, L1, R2, L5, L188, L4, R1, R4, L3, R47, R1, L1, R77, R5, L2, R1, L2, R4, L5, L1, R3, R187, L4, L3, L3, R2, L3, L5, L4, L4, R1, R5, L4, L3, L3, L3, L2, L5, R1, L2, R5, L3, L4, R4, L5, R3, R4, L2, L1, L4, R1, L3, R1, R3, L2, R1, R4, R5, L3, R5, R3, L3, R4, L2, L5, L1, L1, R3, R1, L4, R3, R3, L2, R5, R4, R1, R3, L4, R3, R3, L2, L4, L5, R1, L4, L5, R4, L2, L1, L3, L3, L5, R3, L4, L3, R5, R4, R2, L4, R2, R3, L3, R4, L1, L3, R2, R1, R5, L4, L5, L5, R4, L5, L2, L4, R4, R4, R1, L3, L2, L4, R3"
 6facing = 0 
 7distance = [0,0,0,0]
 8lines = []
 9for inst in EBHQ_dir.split(", "):
10    s = loc(distance)
11    r = inst[0]
12    d = int(inst[1:])
13    if r == "L":
14        facing = (facing -1) % 4
15        distance[facing] += d
16    elif r == "R":
17        facing = (facing +1) % 4
18        distance[facing] += d
19    e = loc(distance)
20    (bs_x, bs_y, be_x, be_y) = (s[0], s[1], e[0], e[1])
21    for l in lines:
22        (as_x, as_y, ae_x, ae_y) = (l[0][0], l[0][1], l[1][0], l[1][1])
23        if (bs_x in range (as_x, ae_x, (-1 if as_x>ae_x else 1)) and
24            be_x in range (as_x, ae_x, (-1 if as_x>ae_x else 1)) and
25            as_y in range (bs_y, be_y, (-1 if bs_y>be_y else 1)) and
26            ae_y in range (bs_y, be_y, (-1 if bs_y>be_y else 1)) ):
27             print "intersection", s,e,l
28    lines.append((s,e))
29    print inst,s,e
30
31print abs(distance[0]-distance[2]) + abs(distance[1]-distance[3])