File size: 7,673 Bytes
f84e910
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
  "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"
  }
}