| @@ -0,0 +1,52 @@ | |||
| # Python 3.7 | |||
| def main(debug): | |||
| paths = {} | |||
| if debug: | |||
| #paths = {1: ["R75","D30","R83","U83","L12","D49","R71","U7","L72"], | |||
| # 2: ["U62","R66","U55","R34","D71","R55","D58","R83"]} | |||
| paths = {1: ["R98","U47","R26","D63","R33","U87","L62","D20","R33","U53","R51"], | |||
| 2: ["U98","R91","D20","R16","D67","R40","U7","R15","U6","R7"]} | |||
| else: | |||
| with open("03in.txt","r") as file: | |||
| for i in range(2): # there are only two lines | |||
| paths[i+1] = file.readline().strip("\n").split(",") | |||
| grid = {} | |||
| for i in range(2): | |||
| pos = (0,0) | |||
| steps = 0 | |||
| for path in paths[i+1]: | |||
| d, v = path[0], int(path[1:]) | |||
| if d == "U": | |||
| dir = 1 | |||
| inc = 1 | |||
| elif d == "D": | |||
| dir = 1 | |||
| inc = -1 | |||
| elif d == "R": | |||
| dir = 0 | |||
| inc = 1 | |||
| else: | |||
| dir = 0 | |||
| inc = -1 | |||
| for _ in range(v): | |||
| steps += 1 | |||
| a, b = pos | |||
| if dir == 0: | |||
| a += inc | |||
| else: | |||
| b += inc | |||
| pos = (a,b) | |||
| if pos not in grid: | |||
| grid[pos] = [0,0] | |||
| if grid[pos][i] == 0: | |||
| grid[pos][i] = steps | |||
| dists = [] | |||
| for k,v in grid.items(): | |||
| if v[0] != 0 and v[1] != 0 and k != (0,0): | |||
| dists.append(abs(v[0]) + abs(v[1])) | |||
| print(dists) | |||
| print(min(dists)) | |||
| if __name__ == "__main__": | |||
| main(False) | |||