{ "88a62173": { "solver_name": "solve_88a62173", "source": "def solve_88a62173(grid):\n rows, cols = len(grid), len(grid[0])\n div_r = div_c = None\n for r in range(rows):\n if all(v == 0 for v in grid[r]):\n div_r = r\n break\n for c in range(cols):\n if all(grid[r][c] == 0 for r in range(rows)):\n div_c = c\n break\n tl = [row[:div_c] for row in grid[:div_r]]\n tr = [row[div_c+1:] for row in grid[:div_r]]\n bl = [row[:div_c] for row in grid[div_r+1:]]\n br = [row[div_c+1:] for row in grid[div_r+1:]]\n quads = [tl, tr, bl, br]\n for i in range(4):\n others = [quads[j] for j in range(4) if j != i]\n if all(o == others[0] for o in others):\n return quads[i]\n return tl\n" }, "8be77c9e": { "solver_name": "solve_8be77c9e", "source": "def solve_8be77c9e(grid):\n return grid + grid[::-1]\n" }, "8d5021e8": { "solver_name": "solve_8d5021e8", "source": "def solve_8d5021e8(grid):\n h = len(grid)\n mirrored_orig = [row[::-1] + row for row in grid]\n mirrored_rev = [row[::-1] + row for row in grid[::-1]]\n return mirrored_rev + mirrored_orig + mirrored_rev\n" }, "8d510a79": { "solver_name": "solve_8d510a79", "source": "def solve_8d510a79(grid):\n rows, cols = len(grid), len(grid[0])\n out = copy.deepcopy(grid)\n five_row = None\n for r in range(rows):\n if all(v == 5 for v in grid[r]):\n five_row = r\n break\n for r in range(rows):\n for c in range(cols):\n v = grid[r][c]\n if v == 0 or v == 5:\n continue\n if v == 1:\n if r < five_row:\n for rr in range(r - 1, -1, -1):\n out[rr][c] = 1\n else:\n for rr in range(r + 1, rows):\n out[rr][c] = 1\n elif v == 2:\n if r < five_row:\n for rr in range(r + 1, five_row):\n out[rr][c] = 2\n else:\n for rr in range(r - 1, five_row, -1):\n out[rr][c] = 2\n return out\n" }, "8e5a5113": { "solver_name": "solve_8e5a5113", "source": "def solve_8e5a5113(grid):\n rows = len(grid)\n cols = len(grid[0])\n sep_cols = [c for c in range(cols) if grid[0][c] == 5]\n s1 = [row[:sep_cols[0]] for row in grid]\n w = sep_cols[0]\n n = rows # should equal w for square section\n # Rotate 90 CW: new[i][j] = old[n-1-j][i]\n s2 = [[s1[n-1-j][i] for j in range(n)] for i in range(w)]\n # Rotate 180: reverse rows, reverse each row\n s3 = [r[::-1] for r in s1[::-1]]\n result = []\n for r in range(rows):\n result.append(s1[r] + [5] + s2[r] + [5] + s3[r])\n return result\n" }, "8f2ea7aa": { "solver_name": "solve_8f2ea7aa", "source": "def solve_8f2ea7aa(grid):\n rows, cols = len(grid), len(grid[0])\n bh, bw = rows // 3, cols // 3\n shape = None\n for br in range(3):\n for bc in range(3):\n block = []\n for r in range(br * bh, (br + 1) * bh):\n block.append(grid[r][bc * bw:(bc + 1) * bw])\n if any(v != 0 for row in block for v in row):\n shape = block\n break\n if shape:\n break\n out = [[0] * cols for _ in range(rows)]\n for sr in range(bh):\n for sc in range(bw):\n if shape[sr][sc] != 0:\n for r in range(bh):\n for c in range(bw):\n out[sr * bh + r][sc * bw + c] = shape[r][c]\n return out\n" }, "90f3ed37": { "solver_name": "solve_90f3ed37", "source": "def solve_90f3ed37(grid):\n rows, cols = len(grid), len(grid[0])\n out = copy.deepcopy(grid)\n\n groups = []\n i = 0\n while i < rows:\n if any(v == 8 for v in grid[i]):\n start = i\n while i < rows and any(v == 8 for v in grid[i]):\n i += 1\n groups.append((start, i))\n else:\n i += 1\n\n template = None\n template_data = None\n for s, e in groups:\n covered = set()\n for r in range(s, e):\n for c in range(cols):\n if grid[r][c] == 8:\n covered.add(c)\n if len(covered) == cols:\n template = (s, e)\n template_data = [grid[r][:] for r in range(s, e)]\n break\n\n if template is None:\n return out\n\n tlen = len(template_data)\n\n for s, e in groups:\n if (s, e) == template:\n continue\n\n glen = e - s\n covered = set()\n for r in range(s, e):\n for c in range(cols):\n if grid[r][c] == 8:\n covered.add(c)\n\n if glen == tlen:\n for i in range(glen):\n gr = s + i\n for c in range(cols):\n if template_data[i][c] == 8 and out[gr][c] == 0 and c not in covered:\n out[gr][c] = 1\n elif glen < tlen:\n for i in range(glen):\n gr = s + i\n for c in range(cols):\n if template_data[i][c] == 8 and out[gr][c] == 0 and c not in covered:\n out[gr][c] = 1\n insert_r = e\n for i in range(glen, tlen):\n if insert_r < rows:\n for c in range(cols):\n if template_data[i][c] == 8 and c not in covered:\n out[insert_r][c] = 1\n insert_r += 1\n\n return out\n" }, "913fb3ed": { "solver_name": "solve_913fb3ed", "source": "def solve_913fb3ed(grid):\n rows, cols = len(grid), len(grid[0])\n out = [[0]*cols for _ in range(rows)]\n color_map = {3: 6, 2: 1, 8: 4}\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0:\n val = grid[r][c]\n border = color_map.get(val, val)\n for dr in range(-1, 2):\n for dc in range(-1, 2):\n nr, nc = r+dr, c+dc\n if 0 <= nr < rows and 0 <= nc < cols:\n if dr == 0 and dc == 0:\n out[nr][nc] = val\n else:\n out[nr][nc] = border\n return out\n" }, "91413438": { "solver_name": "solve_91413438", "source": "def solve_91413438(grid):\n h = len(grid)\n w = len(grid[0])\n n_nonzero = sum(1 for r in range(h) for c in range(w) if grid[r][c] != 0)\n n_zero = h * w - n_nonzero\n out_h = h * n_zero\n out_w = w * n_zero\n out = [[0] * out_w for _ in range(out_h)]\n count = 0\n for br in range(n_zero):\n for bc in range(n_zero):\n if count >= n_nonzero:\n break\n for r in range(h):\n for c in range(w):\n out[br * h + r][bc * w + c] = grid[r][c]\n count += 1\n if count >= n_nonzero:\n break\n return out\n" }, "9172f3a0": { "solver_name": "solve_9172f3a0", "source": "def solve_9172f3a0(grid):\n n = len(grid)\n scale = n\n out = []\n for r in range(n):\n for _ in range(scale):\n row = []\n for c in range(n):\n row.extend([grid[r][c]] * scale)\n out.append(row)\n return out\n" } }