Browse Source

Solve day 7

Taddeus Kroes 2 tháng trước cách đây
mục cha
commit
db5b731e2f
2 tập tin đã thay đổi với 167 bổ sung0 xóa
  1. 25 0
      2025/07_beam.py
  2. 142 0
      2025/input/7

+ 25 - 0
2025/07_beam.py

@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+import sys
+
+def visit(xy):
+    x, y = xy
+    if xy in paths:
+        return 0
+    if y == len(grid):
+        paths[xy] = 1
+        return 0
+    if grid[y][x] == '^':
+        left = x - 1, y + 1
+        right = x + 1, y + 1
+        splits = 1 + visit(left) + visit(right)
+        paths[xy] = paths[left] + paths[right]
+        return splits
+    splits = visit((x, y + 1))
+    paths[xy] = paths[(x, y + 1)]
+    return splits
+
+grid = sys.stdin.read().split()
+start = grid[0].index('S'), 0
+paths = {}
+print(visit(start))
+print(paths[start])

+ 142 - 0
2025/input/7

@@ -0,0 +1,142 @@
+......................................................................S......................................................................
+.............................................................................................................................................
+......................................................................^......................................................................
+.............................................................................................................................................
+.....................................................................^.^.....................................................................
+.............................................................................................................................................
+....................................................................^.^.^....................................................................
+.............................................................................................................................................
+...................................................................^.^.^.^...................................................................
+.............................................................................................................................................
+..................................................................^...^...^..................................................................
+.............................................................................................................................................
+.................................................................^.^...^.^.^.................................................................
+.............................................................................................................................................
+................................................................^.....^...^.^................................................................
+.............................................................................................................................................
+...............................................................^.^.^.^...^...^...............................................................
+.............................................................................................................................................
+..............................................................^.^...^.^...^.^.^..............................................................
+.............................................................................................................................................
+.............................................................^...^...^.....^...^.............................................................
+.............................................................................................................................................
+............................................................^.....^.^.^...^.....^............................................................
+.............................................................................................................................................
+...........................................................^.^...^.^...^...^.....^...........................................................
+.............................................................................................................................................
+..........................................................^.^.^.^...^.^.^...^.....^..........................................................
+.............................................................................................................................................
+.........................................................^.^.^...^...^.^.^.^.^.....^.........................................................
+.............................................................................................................................................
+........................................................^.^...^.^.^.^.....^...^.^.^.^........................................................
+.............................................................................................................................................
+.......................................................^.^...^.^...^...^.^.^.....^.^.^.......................................................
+.............................................................................................................................................
+......................................................^...^.^.^.^.^.^.^...^.^.^.^.^.^.^......................................................
+.............................................................................................................................................
+.....................................................^.......^.........^.^.^.......^...^.....................................................
+.............................................................................................................................................
+....................................................^.^.^.....^.^...^.^.^...^.^.^.^.^.^.^....................................................
+.............................................................................................................................................
+...................................................^...^.^.^.....^.^...........^.......^.^...................................................
+.............................................................................................................................................
+..................................................^...^.^...^.^.^...^.^.^.^.^...^.^.......^..................................................
+.............................................................................................................................................
+.................................................^...^.....^.^.^.^.^...^...^...^.^.^.^.....^.................................................
+.............................................................................................................................................
+................................................^.^.^.^.^...^.^.^.^.^.^.^...^.....^...^.^.^.^................................................
+.............................................................................................................................................
+...............................................^.^.^.^.....^.^.^.........^.^.^.^.^...^.^.....^...............................................
+.............................................................................................................................................
+..............................................^...^.^.^.^...^...........^.^.^.^...^...^.^.^...^..............................................
+.............................................................................................................................................
+.............................................^.^...^.^.^.^.^.....^.^.^.....^.......^.^.^.^...^.^.............................................
+.............................................................................................................................................
+............................................^.....^...^.....^.^.^...^...^.^.......^.^.....^.^.^.^............................................
+.............................................................................................................................................
+...........................................^.^.....^.....^.^.^.^.^.^.^.^.^.^.^.....^.^.^.^.^...^.^...........................................
+.............................................................................................................................................
+..........................................^.^...^.^.^.....^.^.^.......^...^.^.....^.^.^...^.^.^...^..........................................
+.............................................................................................................................................
+.........................................^.^.^.^.^...^.^.^.^.^.^...^...^.^.^...^.^.^.^.......^.^.^.^.........................................
+.............................................................................................................................................
+........................................^.^.....^.^.^.^.....^.^.^.^...^.^.^.^.......^.....^.^.^.^.^.^........................................
+.............................................................................................................................................
+.......................................^.^.^.^...^...^...^.^.^.^.^.........^.^.^.^.^...^.^.^.^...^.^.^.......................................
+.............................................................................................................................................
+......................................^.^.^.^.^.^.^.^.^...^...^.^.^.^.^...^.^.^...^...^.^.........^.^.^......................................
+.............................................................................................................................................
+.....................................^.^.^.^.......^...^.^...^.^.^.......^.....^.^.^.^...^.^.^.^...^...^.....................................
+.............................................................................................................................................
+....................................^.^.^.^.^.^.^...^...^.........^.^...^.^.^...^.^.^...^.....^.^.^.^...^....................................
+.............................................................................................................................................
+...................................^.^...^...^...^.^.^.......^.^.^...^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^.^.^...................................
+.............................................................................................................................................
+..................................^...^.^.^.^.....^.^...^.......^.^.^...^.^.^.^.^.^.^...^.^.^...^...^.^.^.^..................................
+.............................................................................................................................................
+.................................^.^.^...^.^.^...^.^.^.^.^.^...^.^.^.^.^...^...^...^.^...^.^.^.^.^.^.^.^...^.................................
+.............................................................................................................................................
+................................^.^...^...^.^.^.^.^.......^.^...^...^...^...^.....^.^.^.^.^.^...^.^.^.....^.^................................
+.............................................................................................................................................
+...............................^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^...^...^...^.^.^.^.^.^...^.^.^.^...^.^...^.^...............................
+.............................................................................................................................................
+..............................^.^.....^.^.......^.^.^...^.^.^.^.^.^.^.^.........^.^.^.^.^.^.^.......^...^.^.^.^..............................
+.............................................................................................................................................
+.............................^.^.............^.^.^.^.^...^...^.....^.^.^.^...^.^.^.^.....^.^.^.^.^...^.^.^.....^.............................
+.............................................................................................................................................
+............................^.^.^...^.^.^...^.^.^.^.^.^.^.^.^.^...^...^.....^...^.^...^...^.^...^.^.^.^.^...^...^............................
+.............................................................................................................................................
+...........................^.....^.^...^.^.^.^.^.^...^...^.^.^...^...........^...^.^.^...^.^...^.^.^.^.^.^.^.^.^.^...........................
+.............................................................................................................................................
+..........................^...^...^...^.^...^.^.^.....^.....^...^.^.^.....^.^...^...^.^.^.^.^.^.^...^.^.^...^.^.^.^..........................
+.............................................................................................................................................
+.........................^.^...^.^.....^...^.^.^.^.....^.^.^.....^.^.^.^.^.^.....^.^.^...^.^.....^.^.^.^.^...^.....^.........................
+.............................................................................................................................................
+........................^.^...^.^.^...^...^.^.....^...^.^...^.^.....^.^...^.^.^.^.^...^...^.^.^...^...^.^...^.^.^.^.^........................
+.............................................................................................................................................
+.......................^.^.^.^.^...^.^.^.^.^.^.^.^.^.^...^.^.^...^...^.....^...^.^.^.^.^.....^.^.^.^.^.^.^.^.....^.^.^.......................
+.............................................................................................................................................
+......................^.^...^.^.^.^...^.^.^.^.^.^...^.^.^.....^.^.^.^...^.^...^.^.^.........^.^.....^.^.^.^.^.^.....^.^......................
+.............................................................................................................................................
+.....................^...^...^...^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^.....^.^.^.^...^.....^.^.....^...^.^.....................
+.............................................................................................................................................
+....................^.^.^.^.^.^...^.^.^.^.^...^.^...^.^.^.....^...^.^.^...^.^.^.^...^.^.^.^.^.^.^...^...^.....^.^...^.^.^....................
+.............................................................................................................................................
+...................^.^...^...^...^.^.^...^...^.........^.....^.^.....^...^.^.^.^.^.^.^.^.^.^.........^.^.^.^...^.^.^...^.^...................
+.............................................................................................................................................
+..................^.^.....^.......^...^.^.^...^...^.^...^.^.^.^.........^.^.......^.^.^.^.^.^...^.^.....^.^...^.^...^...^.^..................
+.............................................................................................................................................
+.................^.^...^.^.^.^...^.^.^.....^...^.^.^.^.^.......^...^...^.^.....^.^.^.^.^.^...^.^.....^.....^.^.^.......^.^.^.................
+.............................................................................................................................................
+................^.^.^.......^.^.^.^.^.^.^.^.^.^.^.....^.^.....^...^.^.^.^.^.^.^.^.^.^...^.....^.^.....^.^.^.......^...^.^.^.^................
+.............................................................................................................................................
+...............^.....^.^.^.^.^.........^.^...^.^.^.....^.^...^.^.^...^.^.....^.^.^.^.^.^.....^...^.^...^.^...^.^.^...^.^.^...^...............
+.............................................................................................................................................
+..............^.^.^.^.^.....^.....^.^.^.^.^.^...^.^.^.^...^.^.^.^.^...^.^.^.^.^.^.....^...^.^.^.............^.^...^.^.^.^...^.^..............
+.............................................................................................................................................
+.............^...^...^.^.^.^.^.^...^.^.^...^.^.^...^...^.^.....^...^.^.^.^...^...^.^.^.^.^.^.^...^.^...^.^...^.^.^.^...^.....^.^.............
+.............................................................................................................................................
+............^.^.......^.^...........^.^.^.^.^...^.....^.^.^.^.^.^...^.^...^.^.^.^.^...^.^.^.^.^.....^.^.^.^...^.^.^.^.^.^...^.^.^............
+.............................................................................................................................................
+...........^.^...^.^...^.^.....^.^.^.^.^.^.^.....^.^.^.^.^.^.^...^...^...^.^.^.^.^.^.^.^.^...^.^...^...^.....^.^.^.^.^...^.^.^.^.^...........
+.............................................................................................................................................
+..........^.^.^.^.^.....^.^.^...^...^.^.........^.^.^.^.^.^...^.^.^.^.......^...^...^.^.^.^...^...^.^.^.^.^.^.^.^...^...^.^...^...^..........
+.............................................................................................................................................
+.........^.^.^.^.^...^...^.^.^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.^.^.^.^...^.^.^.....^.^...^...^.^.^.^.^.^...^.^.^.^.^.^...^.^...^.^.^.........
+.............................................................................................................................................
+........^.^.....^.^.......^.^.^.^.^...^.^.^.^...^...^...^.^.......^.^.^.....^...^.^.......^.^.^...^...^.^.^.^.....^.^.....^.^.^.^...^........
+.............................................................................................................................................
+.......^.^...^.^.^.......^.^.^.^...^...^.....^.^.....^...^...^.^...^.^.^.^.^...^.^...^.^.^.......^...^.^.^.^.^.^.^...........^.^.^.^.^.......
+.............................................................................................................................................
+......^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^...^.^.^.^...^.^...^.^.^.^.^.^.^.^.....^...^.^.^.^.....^.....^.....^...^.^.....^.^.^.^......
+.............................................................................................................................................
+.....^...^.^.^...^...^.^...^.....^.^...^.^.....^.^.^.^.^.^...^...^...^...^.^.^.^...^.^.^.^.^.^.^.^...^...^.^.....^.^.......^.^.^...^...^.....
+.............................................................................................................................................
+....^.....^.^.^.........^.^...^...........^.^.^.^.^.^.^.^...^.^.^.^...^.......^.....^.^...^.^.....^.^...^.^.......^.^.^.^.....^.^.^.^.^.^....
+.............................................................................................................................................
+...^.^.^...^.^...^.^.^.....^.^...^.^.^.....^...^...^.....^.....^.^...^.^.....^...^.^.^.^...^.^.^.....^.....^.^.^.^.^.^...^.^.^.^.^...^.^.^...
+.............................................................................................................................................
+..^...^.^.....^.^.^.^.^.^.^.^...^...^.^.^.^.^.^.^.^.^.^.^...^.......^.^.^.^...^.......^.^.^.^.^.^.^...^.^.^.^.^.^.^.......^...^...^...^...^..
+.............................................................................................................................................
+.^.^.^.^.^...^.^.......^.^.^.^.^.^...^...^...^.^.^.......^.^.........^.^.^.^.^.....^.......^.^.^.^...^.^.^...^.^.^.....^...^.^.^...^.^...^.^.
+.............................................................................................................................................