File size: 9,943 Bytes
cca1002
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
{
  "ba97ae07": "def solve_ba97ae07(grid):\n    grid = [row[:] for row in grid]\n    rows, cols = len(grid), len(grid[0])\n\n    # Find the two non-zero colors\n    colors = set()\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] != 0:\n                colors.add(grid[r][c])\n    colors = list(colors)\n    if len(colors) != 2:\n        return grid\n    c1, c2 = colors\n\n    # Find which rows are \"horizontal stripe\" rows (all non-zero, same color or mix)\n    # and which cols are \"vertical stripe\" cols\n    # A horizontal stripe row: every cell is non-zero\n    # A vertical stripe col: every cell is non-zero\n\n    horiz_rows = []\n    for r in range(rows):\n        if all(grid[r][c] != 0 for c in range(cols)):\n            horiz_rows.append(r)\n\n    vert_cols = []\n    for c in range(cols):\n        if all(grid[r][c] != 0 for r in range(rows)):\n            vert_cols.append(c)\n\n    # Determine the vertical color (appears in vert cols in non-horiz rows)\n    # and horizontal color (appears in horiz rows in non-vert cols)\n    vert_color = None\n    for c in vert_cols:\n        for r in range(rows):\n            if r not in horiz_rows:\n                vert_color = grid[r][c]\n                break\n        if vert_color:\n            break\n\n    horiz_color = None\n    for r in horiz_rows:\n        for c in range(cols):\n            if c not in vert_cols:\n                horiz_color = grid[r][c]\n                break\n        if horiz_color:\n            break\n\n    # At intersection, swap to the color NOT shown there\n    output = [row[:] for row in grid]\n    for r in horiz_rows:\n        for c in vert_cols:\n            if grid[r][c] == vert_color:\n                output[r][c] = horiz_color\n            else:\n                output[r][c] = vert_color\n\n    return output\n",
  "bb43febb": "def solve_bb43febb(grid):\n    grid = [row[:] for row in grid]\n    rows, cols = len(grid), len(grid[0])\n    visited = [[False]*cols for _ in range(rows)]\n\n    def find_rect(r, c):\n        from collections import deque\n        q = deque([(r, c)])\n        visited[r][c] = True\n        cells = [(r, c)]\n        while q:\n            cr, cc = q.popleft()\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 not visited[nr][nc] and grid[nr][nc] == 5:\n                    visited[nr][nc] = True\n                    q.append((nr, nc))\n                    cells.append((nr, nc))\n        min_r = min(x[0] for x in cells)\n        max_r = max(x[0] for x in cells)\n        min_c = min(x[1] for x in cells)\n        max_c = max(x[1] for x in cells)\n        return min_r, max_r, min_c, max_c\n\n    output = [row[:] for row in grid]\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] == 5 and not visited[r][c]:\n                r1, r2, c1, c2 = find_rect(r, c)\n                for ir in range(r1+1, r2):\n                    for ic in range(c1+1, c2):\n                        output[ir][ic] = 2\n    return output\n",
  "bbc9ae5d": "def solve_bbc9ae5d(grid):\n    row = grid[0]\n    W = len(row)\n    color = None\n    N = 0\n    for v in row:\n        if v != 0:\n            color = v\n            N += 1\n    num_rows = W // 2\n    output = []\n    for i in range(num_rows):\n        count = N + i\n        output.append([color]*count + [0]*(W-count))\n    return output\n",
  "bc1d5164": "def solve_bc1d5164(grid):\n    rows_g = len(grid)\n    cols_g = len(grid[0])\n\n    # The grid is always 5 rows x 7 cols. Structure:\n    # Top quadrants: rows 0-1, bottom quadrants: rows 3-4\n    # Left quadrants: cols 0-1, right quadrants: cols 5-6\n    # Row 2 and cols 2-4 are separators (always zero)\n    top_rows = [0, 1]\n    bottom_rows = [3, 4]\n    left_cols = [0, 1]\n    right_cols = [5, 6]\n\n    th = len(top_rows)\n    bh = len(bottom_rows)\n    lw = len(left_cols)\n    rw = len(right_cols)\n\n    out_h = th + bh - 1\n    out_w = lw + rw - 1\n\n    output = [[0]*out_w for _ in range(out_h)]\n\n    # TL -> output[0:th, 0:lw]\n    for i, r in enumerate(top_rows):\n        for j, c in enumerate(left_cols):\n            if grid[r][c] != 0:\n                output[i][j] = grid[r][c]\n\n    # TR -> output[0:th, out_w-rw:out_w]\n    for i, r in enumerate(top_rows):\n        for j, c in enumerate(right_cols):\n            if grid[r][c] != 0:\n                output[i][out_w - rw + j] = grid[r][c]\n\n    # BL -> output[out_h-bh:out_h, 0:lw]\n    for i, r in enumerate(bottom_rows):\n        for j, c in enumerate(left_cols):\n            if grid[r][c] != 0:\n                output[out_h - bh + i][j] = grid[r][c]\n\n    # BR -> output[out_h-bh:out_h, out_w-rw:out_w]\n    for i, r in enumerate(bottom_rows):\n        for j, c in enumerate(right_cols):\n            if grid[r][c] != 0:\n                output[out_h - bh + i][out_w - rw + j] = grid[r][c]\n\n    return output\n",
  "bd4472b8": "def solve_bd4472b8(grid):\n    rows = len(grid)\n    cols = len(grid[0])\n    colors = grid[0]\n    output = [row[:] for row in grid]\n    idx = 0\n    for r in range(2, rows):\n        color = colors[idx % len(colors)]\n        output[r] = [color] * cols\n        idx += 1\n    return output\n",
  "bda2d7a6": "def solve_bda2d7a6(grid):\n    rows = len(grid)\n    cols = len(grid[0])\n\n    # Extract layer colors (outer to inner)\n    layer_colors = []\n    r1, r2, c1, c2 = 0, rows-1, 0, cols-1\n    while r1 <= r2 and c1 <= c2:\n        color = grid[r1][c1]\n        layer_colors.append(color)\n        r1 += 1; r2 -= 1; c1 += 1; c2 -= 1\n\n    # Get unique colors in order of appearance (outer to inner)\n    seen = set()\n    unique_colors = []\n    for c in layer_colors:\n        if c not in seen:\n            seen.add(c)\n            unique_colors.append(c)\n\n    # Create rotation mapping: each color maps to the previous in the unique list (wrapping)\n    # unique_colors rotated by -1: last element goes to front\n    n = len(unique_colors)\n    color_map = {}\n    for i in range(n):\n        color_map[unique_colors[i]] = unique_colors[(i - 1) % n]\n\n    # Apply mapping to all cells\n    output = [[color_map.get(grid[r][c], grid[r][c]) for c in range(cols)] for r in range(rows)]\n    return output\n",
  "bdad9b1f": "def solve_bdad9b1f(grid):\n    rows = len(grid)\n    cols = len(grid[0])\n    eight_positions = []\n    two_positions = []\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] == 8:\n                eight_positions.append((r, c))\n            elif grid[r][c] == 2:\n                two_positions.append((r, c))\n    eight_col = eight_positions[0][1]\n    two_row = two_positions[0][0]\n    output = [[0]*cols for _ in range(rows)]\n    for r in range(rows):\n        output[r][eight_col] = 8\n    for c in range(cols):\n        output[two_row][c] = 2\n    output[two_row][eight_col] = 4\n    return output\n",
  "be94b721": "def solve_be94b721(grid):\n    rows = len(grid)\n    cols = len(grid[0])\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    best_color = max(color_cells, key=lambda k: len(color_cells[k]))\n    cells = color_cells[best_color]\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    output = []\n    for r in range(min_r, max_r + 1):\n        row = []\n        for c in range(min_c, max_c + 1):\n            if grid[r][c] == best_color:\n                row.append(best_color)\n            else:\n                row.append(0)\n        output.append(row)\n    return output\n",
  "beb8660c": "def solve_beb8660c(grid):\n    rows = len(grid)\n    cols = len(grid[0])\n    bars = []\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] != 0:\n                color = grid[r][c]\n                length = sum(1 for v in grid[r] if v != 0)\n                bars.append((length, color))\n                break\n    bars.sort(key=lambda x: -x[0])\n    output = [[0]*cols for _ in range(rows)]\n    row_idx = rows - 1\n    for length, color in bars:\n        row = [0]*(cols - length) + [color]*length\n        output[row_idx] = row\n        row_idx -= 1\n    return output\n",
  "c0f76784": "def solve_c0f76784(grid):\n    rows = len(grid)\n    cols = len(grid[0])\n    output = [row[:] for row in grid]\n    visited = [[False]*cols for _ in range(rows)]\n\n    def find_rect(r, c):\n        from collections import deque\n        q = deque([(r, c)])\n        visited[r][c] = True\n        cells = [(r, c)]\n        while q:\n            cr, cc = q.popleft()\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 not visited[nr][nc] and grid[nr][nc] == 5:\n                    visited[nr][nc] = True\n                    q.append((nr, nc))\n                    cells.append((nr, nc))\n        min_r = min(x[0] for x in cells)\n        max_r = max(x[0] for x in cells)\n        min_c = min(x[1] for x in cells)\n        max_c = max(x[1] for x in cells)\n        return min_r, max_r, min_c, max_c\n\n    for r in range(rows):\n        for c in range(cols):\n            if grid[r][c] == 5 and not visited[r][c]:\n                r1, r2, c1, c2 = find_rect(r, c)\n                int_h = r2 - r1 - 1\n                int_w = c2 - c1 - 1\n                if int_h > 0 and int_w > 0:\n                    fill_color = 5 + min(int_h, int_w)\n                    for ir in range(r1+1, r2):\n                        for ic in range(c1+1, c2):\n                            output[ir][ic] = fill_color\n    return output\n"
}