Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wire1 = 'R98,U47,R26,D63,R33,U87,L62,D20,R33,U53,R51'
- wire2 = 'U98,R91,D20,R16,D67,R40,U7,R15,U6,R7'
- paths = map(lambda p: [(a[0], int(a[1:])) for a in p.split(',')], (wire1, wire2))
- grids = [set(), set()]
- for i, path in enumerate(paths):
- o = (0, 0)
- for dir, steps in path:
- dx, dy = {'U': (0, 1), 'D': (0, -1), 'R': (1, 0), 'L': (-1, 0)}[dir]
- grids[i] |= set((o[0] + dx * s, o[1] + dy * s) for s in range(1, steps + 1))
- o = o[0] + dx * steps, o[1] + dy * steps
- print(min([sum(map(abs, c)) for c in grids[0] & grids[1]])) # first question
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement