| { | |
| "25ff71a9": "def solve(grid):\n rows = len(grid)\n cols = 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 grid[r][c] != 0:\n nr = r + 1\n if nr < rows:\n out[nr][c] = grid[r][c]\n return out", | |
| "27a28665": "def solve(grid):\n def canonical(pattern):\n def rotate90(m):\n n = len(m)\n return [[m[n-1-c][r] for c in range(n)] for r in range(n)]\n def flip(m):\n return [row[::-1] for row in m]\n forms = []\n m = [row[:] for row in pattern]\n for _ in range(4):\n forms.append(tuple(tuple(r) for r in m))\n forms.append(tuple(tuple(r) for r in flip(m)))\n m = rotate90(m)\n return min(forms)\n lookup = {\n ((0, 1, 0), (1, 0, 1), (0, 1, 1)): 1,\n ((1, 0, 1), (0, 1, 0), (1, 0, 1)): 2,\n ((0, 0, 1), (1, 1, 0), (1, 1, 0)): 3,\n ((0, 1, 0), (1, 1, 1), (0, 1, 0)): 6,\n }\n binary = [[1 if grid[r][c]!=0 else 0 for c in range(3)] for r in range(3)]\n key = canonical(binary)\n return [[lookup[key]]]", | |
| "28bf18c6": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n min_r, max_r, min_c, max_c = rows, 0, cols, 0\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0:\n min_r = min(min_r, r)\n max_r = max(max_r, r)\n min_c = min(min_c, c)\n max_c = max(max_c, c)\n shape = []\n for r in range(min_r, max_r+1):\n row = []\n for c in range(min_c, max_c+1):\n row.append(grid[r][c])\n shape.append(row)\n result = []\n for row in shape:\n result.append(row + row)\n return result", | |
| "28e73c20": "def solve(grid):\n n = len(grid)\n out = [[0]*n for _ in range(n)]\n for layer in range(0, (n+1)//2):\n if layer % 2 == 0:\n top = layer; bot = n-1-layer; left = layer; right = n-1-layer\n for c in range(left, right+1): out[top][c] = 3\n for r in range(top, bot+1): out[r][right] = 3\n for c in range(left, right+1): out[bot][c] = 3\n for r in range(top, bot+1): out[r][left] = 3\n num_flips = n//2 if n % 4 != 2 else n//2 - 1\n for d in range(num_flips):\n r, c = d+1, d\n out[r][c] = 0 if out[r][c] == 3 else 3\n return out", | |
| "29623171": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n div_rows = set(r for r in range(rows) if all(v == 5 for v in grid[r]))\n div_cols = set(c for c in range(cols) if all(grid[r][c] == 5 for r in range(rows)))\n row_bounds = [0] + sorted([r+1 for r in div_rows]) + [rows]\n col_bounds = [0] + sorted([c+1 for c in div_cols]) + [cols]\n sections = {}\n color = 0\n for si in range(len(row_bounds)-1):\n for sj in range(len(col_bounds)-1):\n r1, r2 = row_bounds[si], row_bounds[si+1]\n c1, c2 = col_bounds[sj], col_bounds[sj+1]\n count = 0\n for r in range(r1, r2):\n for c in range(c1, c2):\n if grid[r][c] != 0 and grid[r][c] != 5:\n count += 1\n color = grid[r][c]\n sections[(si,sj)] = (count, r1, r2, c1, c2)\n max_count = max(v[0] for v in sections.values())\n out = [[0]*cols for _ in range(rows)]\n for r in div_rows:\n for c in range(cols):\n out[r][c] = 5\n for c in div_cols:\n for r in range(rows):\n out[r][c] = 5\n for k, (count, r1, r2, c1, c2) in sections.items():\n if count == max_count:\n for r in range(r1, r2):\n for c in range(c1, c2):\n if r not in div_rows and c not in div_cols:\n out[r][c] = color\n return out", | |
| "29c11459": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n for r in range(rows):\n nonzero = [(c, grid[r][c]) for c in range(cols) if grid[r][c] != 0]\n if len(nonzero) == 2:\n (c1, v1), (c2, v2) = nonzero\n mid = (c1 + c2) // 2\n for c in range(c1, mid):\n out[r][c] = v1\n out[r][mid] = 5\n for c in range(mid+1, c2+1):\n out[r][c] = v2\n return out", | |
| "2bcee788": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n twos = []\n shape_cells = []\n shape_color = 0\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] == 2:\n twos.append((r,c))\n elif grid[r][c] != 0:\n shape_cells.append((r,c))\n shape_color = grid[r][c]\n out = [[3]*cols for _ in range(rows)]\n for r,c in shape_cells:\n out[r][c] = shape_color\n if len(twos) == 1 or all(r == twos[0][0] for r,c in twos):\n two_r = twos[0][0]\n shape_rows = [r for r,c in shape_cells]\n if two_r > max(shape_rows):\n mirror = (max(shape_rows) + two_r) / 2.0\n else:\n mirror = (min(shape_rows) + two_r) / 2.0\n for r,c in shape_cells:\n nr = int(2 * mirror - r)\n if 0 <= nr < rows:\n out[nr][c] = shape_color\n else:\n two_c = twos[0][1]\n shape_cols = [c for r,c in shape_cells]\n if two_c > max(shape_cols):\n mirror = (max(shape_cols) + two_c) / 2.0\n else:\n mirror = (min(shape_cols) + two_c) / 2.0\n for r,c in shape_cells:\n nc = int(2 * mirror - c)\n if 0 <= nc < cols:\n out[r][nc] = shape_color\n return out", | |
| "2bee17df": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n row_zeros = [sum(1 for v in grid[r] if v == 0) for r in range(rows)]\n col_zeros = [sum(1 for r in range(rows) if grid[r][c] == 0) for c in range(cols)]\n max_rz = max(row_zeros)\n max_cz = max(col_zeros)\n max_rows = set(r for r in range(rows) if row_zeros[r] == max_rz)\n max_cols = set(c for c in range(cols) if col_zeros[c] == max_cz)\n out = [row[:] for row in grid]\n for r in max_rows:\n for c in range(cols):\n if grid[r][c] == 0:\n out[r][c] = 3\n for c in max_cols:\n for r in range(rows):\n if grid[r][c] == 0:\n out[r][c] = 3\n return out", | |
| "2c608aff": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n from collections import Counter\n flat = [v for row in grid for v in row]\n bg = Counter(flat).most_common(1)[0][0]\n non_bg = {}\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != bg:\n non_bg.setdefault(grid[r][c], []).append((r,c))\n rect_color = max(non_bg, key=lambda k: len(non_bg[k]))\n rect_cells = non_bg[rect_color]\n rect_r1 = min(r for r,c in rect_cells)\n rect_r2 = max(r for r,c in rect_cells)\n rect_c1 = min(c for r,c in rect_cells)\n rect_c2 = max(c for r,c in rect_cells)\n out = [row[:] for row in grid]\n for color, cells in non_bg.items():\n if color == rect_color:\n continue\n for r, c in cells:\n in_row = rect_r1 <= r <= rect_r2\n in_col = rect_c1 <= c <= rect_c2\n if in_row and not in_col:\n if c > rect_c2:\n for cc in range(rect_c2 + 1, c + 1):\n out[r][cc] = color\n else:\n for cc in range(c, rect_c1):\n out[r][cc] = color\n elif in_col and not in_row:\n if r > rect_r2:\n for rr in range(rect_r2 + 1, r + 1):\n out[rr][c] = color\n elif r < rect_r1:\n for rr in range(r, rect_r1):\n out[rr][c] = color\n return out", | |
| "2dc579da": "def solve(grid):\n rows = len(grid)\n cols = len(grid[0])\n bg = grid[0][0]\n div_row = None\n div_col = None\n div_color = None\n for r in range(rows):\n vals = set(grid[r][c] for c in range(cols))\n if len(vals) == 1 and grid[r][0] != bg:\n div_row = r\n div_color = grid[r][0]\n break\n for c in range(cols):\n vals = set(grid[r][c] for r in range(rows))\n if len(vals) == 1 and grid[0][c] != bg:\n div_col = c\n break\n quads = [\n (0, div_row, 0, div_col),\n (0, div_row, div_col+1, cols),\n (div_row+1, rows, 0, div_col),\n (div_row+1, rows, div_col+1, cols),\n ]\n for r1, r2, c1, c2 in quads:\n has_anomaly = False\n for r in range(r1, r2):\n for c in range(c1, c2):\n if grid[r][c] != bg and grid[r][c] != div_color:\n has_anomaly = True\n if has_anomaly:\n return [[grid[r][c] for c in range(c1, c2)] for r in range(r1, r2)]\n return grid" | |
| } |