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"
} |