File size: 6,561 Bytes
fa2fec3
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
{
  "6d0160f0": "def solve_6d0160f0(grid):\n    out = [[0]*11 for _ in range(11)]\n    for r in range(11):\n        for c in range(11):\n            if r == 3 or r == 7 or c == 3 or c == 7:\n                out[r][c] = 5\n    # Find block with value 4\n    for bi in range(3):\n        for bj in range(3):\n            r0, c0 = bi*4, bj*4\n            for r in range(3):\n                for c in range(3):\n                    if grid[r0+r][c0+c] == 4:\n                        # local pos (r,c) = dest block pos\n                        dr0, dc0 = r*4, c*4\n                        for rr in range(3):\n                            for cc in range(3):\n                                out[dr0+rr][dc0+cc] = grid[r0+rr][c0+cc]\n                        return out\n    return out\n",
  "6d0aefbc": "def solve_6d0aefbc(grid):\n    return [list(row) + list(reversed(row)) for row in grid]\n",
  "6d75e8bb": "def solve_6d75e8bb(grid):\n    rows, cols = len(grid), len(grid[0])\n    out = [row[:] for row in grid]\n    min_r = min_c = float('inf')\n    max_r = max_c = -1\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] == 8:\n                min_r, max_r = min(min_r, r), max(max_r, r)\n                min_c, max_c = min(min_c, c), max(max_c, c)\n    for r in range(min_r, max_r+1):\n        for c in range(min_c, max_c+1):\n            if out[r][c] == 0:\n                out[r][c] = 2\n    return out\n",
  "6e02f1e3": "def solve_6e02f1e3(grid):\n    vals = set(v for row in grid for v in row)\n    n = len(vals)\n    out = [[0]*3 for _ in range(3)]\n    if n == 1:\n        out[0] = [5, 5, 5]\n    elif n == 2:\n        for i in range(3):\n            out[i][i] = 5\n    else:\n        for i in range(3):\n            out[i][2-i] = 5\n    return out\n",
  "6e19193c": "def solve_6e19193c(grid):\n    rows, cols = len(grid), len(grid[0])\n    out = [row[:] for row in grid]\n    cells = [(r,c) for r in range(rows) for c in range(cols) if grid[r][c] != 0]\n    color = grid[cells[0][0]][cells[0][1]]\n    cell_set = set(cells)\n    visited = set()\n    for start in cells:\n        if start in visited:\n            continue\n        comp = []\n        stack = [start]\n        while stack:\n            cr, cc = stack.pop()\n            if (cr,cc) in visited:\n                continue\n            visited.add((cr,cc))\n            comp.append((cr,cc))\n            for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n                nr,nc = cr+dr,cc+dc\n                if (nr,nc) in cell_set and (nr,nc) not in visited:\n                    stack.append((nr,nc))\n        # Find bounding box and missing cell\n        min_r = min(r for r,c in comp)\n        max_r = max(r for r,c in comp)\n        min_c = min(c for r,c in comp)\n        max_c = max(c for r,c in comp)\n        comp_set = set(comp)\n        missing = None\n        for r in range(min_r, max_r+1):\n            for c in range(min_c, max_c+1):\n                if (r,c) not in comp_set:\n                    missing = (r,c)\n        if missing is None:\n            continue\n        opposite = (min_r + max_r - missing[0], min_c + max_c - missing[1])\n        dr = missing[0] - opposite[0]\n        dc = missing[1] - opposite[1]\n        r, c = missing[0] + dr, missing[1] + dc\n        while 0 <= r < rows and 0 <= c < cols:\n            out[r][c] = color\n            r += dr; c += dc\n    return out\n",
  "6e82a1ae": "def solve_6e82a1ae(grid):\n    rows, cols = len(grid), len(grid[0])\n    out = [[0]*cols for _ in range(rows)]\n    visited = set()\n    blobs = []\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] == 5 and (r,c) not in visited:\n                blob = []\n                stack = [(r,c)]\n                while stack:\n                    cr,cc = stack.pop()\n                    if (cr,cc) in visited or grid[cr][cc] != 5:\n                        continue\n                    visited.add((cr,cc))\n                    blob.append((cr,cc))\n                    for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n                        nr,nc = cr+dr,cc+dc\n                        if 0<=nr<rows and 0<=nc<cols and (nr,nc) not in visited:\n                            stack.append((nr,nc))\n                blobs.append(blob)\n    sizes = sorted(set(len(b) for b in blobs), reverse=True)\n    size_to_color = {s: i+1 for i, s in enumerate(sizes)}\n    for blob in blobs:\n        color = size_to_color[len(blob)]\n        for r,c in blob:\n            out[r][c] = color\n    return out\n",
  "6f8cd79b": "def solve_6f8cd79b(grid):\n    rows, cols = len(grid), len(grid[0])\n    out = [[0]*cols for _ in range(rows)]\n    for r in range(rows):\n        for c in range(cols):\n            if r == 0 or r == rows-1 or c == 0 or c == cols-1:\n                out[r][c] = 8\n    return out\n",
  "6fa7a44f": "def solve_6fa7a44f(grid):\n    out = [row[:] for row in grid]\n    for row in reversed(grid):\n        out.append(row[:])\n    return out\n",
  "72ca375d": "def solve_72ca375d(grid):\n    rows, cols = len(grid), len(grid[0])\n    # Group all cells by color\n    from collections import defaultdict\n    color_cells = defaultdict(list)\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] != 0:\n                color_cells[grid[r][c]].append((r,c))\n    shapes = list(color_cells.items())\n    for color, cells in shapes:\n        min_r = min(r for r,c in cells)\n        max_r = max(r for r,c in cells)\n        min_c = min(c for r,c in cells)\n        max_c = max(c for r,c in cells)\n        h, w = max_r-min_r+1, max_c-min_c+1\n        cropped = [[0]*w for _ in range(h)]\n        for r,c in cells:\n            cropped[r-min_r][c-min_c] = color\n        symmetric = all(row == list(reversed(row)) for row in cropped)\n        if symmetric:\n            return cropped\n    return grid\n",
  "7447852a": "def solve_7447852a(grid):\n    rows, cols = len(grid), len(grid[0])\n    out = [row[:] for row in grid]\n    c = 0\n    while c < cols + 2:  # allow slightly beyond grid for partial fills\n        if c % 4 == 0:  # valley (row 0)\n            for r, cc in [(1, c), (2, c), (2, c-1), (2, c+1)]:\n                if 0 <= r < rows and 0 <= cc < cols and out[r][cc] == 0:\n                    out[r][cc] = 4\n        else:  # peak (row 2), c % 4 == 2\n            for r, cc in [(0, c-1), (0, c), (0, c+1), (1, c)]:\n                if 0 <= r < rows and 0 <= cc < cols and out[r][cc] == 0:\n                    out[r][cc] = 4\n        c += 6\n    return out\n"
}