grapheneaffiliates commited on
Commit
1ec6959
·
verified ·
1 Parent(s): 628421a

Upload data\arc2_solutions_retry12.json with huggingface_hub

Browse files
Files changed (1) hide show
  1. data//arc2_solutions_retry12.json +4 -0
data//arc2_solutions_retry12.json ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ {
2
+ "d35bdbdc": "def solve(grid):\n grid = [row[:] for row in grid]\n H, W = len(grid), len(grid[0])\n blocks = []\n for r in range(H-2):\n for c in range(W-2):\n center = grid[r+1][c+1]\n border = grid[r][c+1]\n if center == 0 or border == 0 or center == 5 or border == 5:\n continue\n corners = [grid[r][c], grid[r][c+2], grid[r+2][c], grid[r+2][c+2]]\n edges = [grid[r][c+1], grid[r+1][c], grid[r+1][c+2], grid[r+2][c+1]]\n if all(e == border for e in edges) and all(co == border for co in corners):\n blocks.append((r, c, border, center))\n border_map = {}\n for idx, (r, c, brd, ctr) in enumerate(blocks):\n border_map[brd] = idx\n edges = {}\n incoming = {i: None for i in range(len(blocks))}\n for idx, (r, c, brd, ctr) in enumerate(blocks):\n target = border_map.get(ctr)\n if target is not None and target != idx:\n edges[idx] = target\n incoming[target] = idx\n sources = [i for i in range(len(blocks)) if incoming[i] is None]\n erased_set = set()\n new_centers = {}\n for src in sources:\n chain = []\n cur = src\n visited = set()\n while cur is not None and cur not in visited:\n chain.append(cur)\n visited.add(cur)\n cur = edges.get(cur)\n for pos, block_idx in enumerate(chain):\n if pos % 2 == 0 and pos < len(chain) - 1:\n next_block = chain[pos + 1]\n new_centers[block_idx] = blocks[next_block][3]\n else:\n erased_set.add(block_idx)\n out = [row[:] for row in grid]\n for idx in erased_set:\n r, c, brd, ctr = blocks[idx]\n for dr in range(3):\n for dc in range(3):\n out[r+dr][c+dc] = 0\n for idx, new_ctr in new_centers.items():\n r, c, brd, ctr = blocks[idx]\n out[r+1][c+1] = new_ctr\n return out",
3
+ "dfadab01": "def solve(grid):\n H, W = len(grid), len(grid[0])\n out = [[0]*W for _ in range(H)]\n dfadab01_shapes = {\n 2: [[4,4,4,4],[4,0,0,4],[4,0,0,4],[4,4,4,4]],\n 3: [[0,1,1,0],[1,0,0,1],[1,0,0,1],[0,1,1,0]],\n 5: [[6,6,0,0],[6,6,0,0],[0,0,6,6],[0,0,6,6]],\n 8: [[7,0,0,7],[0,7,7,0],[0,7,7,0],[7,0,0,7]],\n }\n marker_set = {2,3,5,8}\n non_marker = [(r,c) for r in range(H) for c in range(W)\n if grid[r][c] != 0 and grid[r][c] not in marker_set]\n if non_marker:\n min_r = min(r for r,c in non_marker)\n max_r = max(r for r,c in non_marker)\n min_c = min(c for r,c in non_marker)\n max_c = max(c for r,c in non_marker)\n bbox = (min_r, min_c, max_r, max_c)\n else:\n bbox = None\n for r in range(H):\n for c in range(W):\n v = grid[r][c]\n if v not in marker_set:\n continue\n if bbox:\n inside = bbox[0] <= r <= bbox[2] and bbox[1] <= c <= bbox[3]\n if not inside:\n adj_to_shape = False\n for dr in [-1,0,1]:\n for dc in [-1,0,1]:\n if dr==0 and dc==0: continue\n nr, nc = r+dr, c+dc\n if 0<=nr<H and 0<=nc<W and grid[nr][nc]!=0 and grid[nr][nc] not in marker_set:\n adj_to_shape = True\n if adj_to_shape:\n continue\n shape = dfadab01_shapes[v]\n for dr in range(4):\n for dc in range(4):\n nr, nc = r+dr, c+dc\n if 0<=nr<H and 0<=nc<W and shape[dr][dc] != 0:\n out[nr][nc] = shape[dr][dc]\n return out"
4
+ }