h4-polytopic-attention / data /arc_python_solutions_b6.json
grapheneaffiliates's picture
Upload data/arc_python_solutions_b6.json with huggingface_hub
c3ef0e9 verified
{
"42a50994": "def solve_42a50994(grid):\n h, w = len(grid), len(grid[0])\n visited = [[False]*w for _ in range(h)]\n components = []\n for r in range(h):\n for c in range(w):\n if grid[r][c] != 0 and not visited[r][c]:\n comp = [(r,c)]\n visited[r][c] = True\n queue = [(r,c)]\n while queue:\n cr, cc = queue.pop(0)\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 = cr+dr, cc+dc\n if 0<=nr<h and 0<=nc<w and not visited[nr][nc] and grid[nr][nc] != 0:\n visited[nr][nc] = True\n comp.append((nr,nc))\n queue.append((nr,nc))\n components.append(comp)\n out = [[0]*w for _ in range(h)]\n for comp in components:\n if len(comp) >= 2:\n for r,c in comp:\n out[r][c] = grid[r][c]\n return out\n",
"4347f46a": "def solve_4347f46a(grid):\n h, w = len(grid), len(grid[0])\n out = [row[:] for row in grid]\n visited = [[False]*w for _ in range(h)]\n for r in range(h):\n for c in range(w):\n if grid[r][c] != 0 and not visited[r][c]:\n color = grid[r][c]\n comp = [(r,c)]\n visited[r][c] = True\n queue = [(r,c)]\n while queue:\n cr,cc = queue.pop(0)\n for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n nr,nc = cr+dr, cc+dc\n if 0<=nr<h and 0<=nc<w and not visited[nr][nc] and grid[nr][nc]==color:\n visited[nr][nc] = True\n comp.append((nr,nc))\n queue.append((nr,nc))\n minr = min(r for r,c in comp)\n maxr = max(r for r,c in comp)\n minc = min(c for r,c in comp)\n maxc = max(c for r,c in comp)\n for cr,cc in comp:\n if cr > minr and cr < maxr and cc > minc and cc < maxc:\n out[cr][cc] = 0\n return out\n",
"444801d8": "def solve_444801d8(grid):\n h, w = len(grid), len(grid[0])\n out = [row[:] for row in grid]\n visited = [[False]*w for _ in range(h)]\n boxes = []\n for r in range(h):\n for c in range(w):\n if grid[r][c] == 1 and not visited[r][c]:\n comp = set()\n queue = [(r,c)]\n visited[r][c] = True\n while queue:\n cr,cc = queue.pop(0)\n comp.add((cr,cc))\n for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n nr,nc = cr+dr,cc+dc\n if 0<=nr<h and 0<=nc<w and not visited[nr][nc] and grid[nr][nc]==1:\n visited[nr][nc] = True\n queue.append((nr,nc))\n boxes.append(comp)\n for box in boxes:\n minr = min(r for r,c in box)\n maxr = max(r for r,c in box)\n minc = min(c for r,c in box)\n maxc = max(c for r,c in box)\n color = None\n for r in range(minr, maxr+1):\n for c in range(minc, maxc+1):\n if grid[r][c] not in (0, 1):\n color = grid[r][c]\n break\n if color: break\n if not color: continue\n top_gap = any((minr, c) not in box for c in range(minc, maxc+1))\n bot_gap = any((maxr, c) not in box for c in range(minc, maxc+1))\n left_gap = any((r, minc) not in box for r in range(minr, maxr+1))\n right_gap = any((r, maxc) not in box for r in range(minr, maxr+1))\n # Fill interior\n for r in range(minr+1, maxr):\n for c in range(minc+1, maxc):\n if grid[r][c] != 1:\n out[r][c] = color\n # Fill gap cells on border AND extend one row/col outside\n if top_gap:\n for c in range(minc, maxc+1):\n if (minr, c) not in box:\n out[minr][c] = color\n if minr > 0:\n for c in range(minc, maxc+1):\n out[minr-1][c] = color\n if bot_gap:\n for c in range(minc, maxc+1):\n if (maxr, c) not in box:\n out[maxr][c] = color\n if maxr < h-1:\n for c in range(minc, maxc+1):\n out[maxr+1][c] = color\n if left_gap:\n for r in range(minr, maxr+1):\n if (r, minc) not in box:\n out[r][minc] = color\n if minc > 0:\n for r in range(minr, maxr+1):\n out[r][minc-1] = color\n if right_gap:\n for r in range(minr, maxr+1):\n if (r, maxc) not in box:\n out[r][maxc] = color\n if maxc < w-1:\n for r in range(minr, maxr+1):\n out[r][maxc+1] = color\n return out\n",
"445eab21": "def solve_445eab21(grid):\n h, w = len(grid), len(grid[0])\n visited = [[False]*w for _ in range(h)]\n rects = []\n for r in range(h):\n for c in range(w):\n if grid[r][c] != 0 and not visited[r][c]:\n color = grid[r][c]\n comp = set()\n queue = [(r,c)]\n visited[r][c] = True\n while queue:\n cr,cc = queue.pop(0)\n comp.add((cr,cc))\n for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n nr,nc = cr+dr,cc+dc\n if 0<=nr<h and 0<=nc<w and not visited[nr][nc] and grid[nr][nc]==color:\n visited[nr][nc] = True\n queue.append((nr,nc))\n minr = min(r for r,c in comp)\n maxr = max(r for r,c in comp)\n minc = min(c for r,c in comp)\n maxc = max(c for r,c in comp)\n interior_area = (maxr - minr - 1) * (maxc - minc - 1)\n rects.append((color, interior_area))\n rects.sort(key=lambda x: -x[1])\n c = rects[0][0]\n return [[c, c], [c, c]]\n",
"447fd412": "def solve_447fd412(grid):\n h, w = len(grid), len(grid[0])\n out = [row[:] for row in grid]\n visited = [[False]*w for _ in range(h)]\n components = []\n for r in range(h):\n for c in range(w):\n if grid[r][c] != 0 and not visited[r][c]:\n comp = []\n queue = [(r,c)]\n visited[r][c] = True\n while queue:\n cr,cc = queue.pop(0)\n comp.append((cr,cc, grid[cr][cc]))\n for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n nr,nc = cr+dr,cc+dc\n if 0<=nr<h and 0<=nc<w and not visited[nr][nc] and grid[nr][nc]!=0:\n visited[nr][nc] = True\n queue.append((nr,nc))\n components.append(comp)\n template_comp = None\n target_comps = []\n for comp in components:\n vals = set(v for _,_,v in comp)\n if 1 in vals and 2 in vals:\n template_comp = comp\n elif vals == {2}:\n target_comps.append(comp)\n if template_comp is None:\n return out\n t1_cells = [(r,c) for r,c,v in template_comp if v == 1]\n t2_cells = [(r,c) for r,c,v in template_comp if v == 2]\n target_blocks = []\n for comp in target_comps:\n rs = [r for r,c,v in comp]\n cs = [c for r,c,v in comp]\n minr,maxr,minc,maxc = min(rs),max(rs),min(cs),max(cs)\n bh = maxr - minr + 1\n bw = maxc - minc + 1\n target_blocks.append((minr,maxr,minc,maxc,bh,bw))\n if len(t2_cells) == 1:\n t2r, t2c = t2_cells[0]\n for blk in target_blocks:\n minr,maxr,minc,maxc,bh,bw = blk\n scale = max(bh, bw)\n for r1, c1 in t1_cells:\n dr = r1 - t2r\n dc = c1 - t2c\n for rr in range(scale):\n for cc in range(scale):\n nr = minr + dr * scale + rr\n nc = minc + dc * scale + cc\n if 0 <= nr < h and 0 <= nc < w and out[nr][nc] == 0:\n out[nr][nc] = 1\n elif len(t2_cells) == 2:\n t2a, t2b = t2_cells[0], t2_cells[1]\n t_dr = t2b[0] - t2a[0]\n t_dc = t2b[1] - t2a[1]\n used = [False] * len(target_blocks)\n for i in range(len(target_blocks)):\n if used[i]: continue\n for j in range(i+1, len(target_blocks)):\n if used[j]: continue\n bi = target_blocks[i]\n bj = target_blocks[j]\n for ba, bb in [(bi, bj), (bj, bi)]:\n scale = max(ba[4], ba[5])\n exp_r = ba[0] + t_dr * scale\n exp_c = ba[2] + t_dc * scale\n if exp_r == bb[0] and exp_c == bb[2]:\n used[i] = True\n used[j] = True\n for r1, c1 in t1_cells:\n dr = r1 - t2a[0]\n dc = c1 - t2a[1]\n for rr in range(scale):\n for cc in range(scale):\n nr = ba[0] + dr * scale + rr\n nc = ba[2] + dc * scale + cc\n if 0 <= nr < h and 0 <= nc < w and out[nr][nc] == 0:\n out[nr][nc] = 1\n break\n if used[i]:\n break\n return out\n",
"44d8ac46": "def solve_44d8ac46(grid):\n h, w = len(grid), len(grid[0])\n out = [row[:] for row in grid]\n visited = [[False]*w for _ in range(h)]\n for r in range(h):\n for c in range(w):\n if grid[r][c] == 5 and not visited[r][c]:\n comp = set()\n queue = [(r,c)]\n visited[r][c] = True\n while queue:\n cr,cc = queue.pop(0)\n comp.add((cr,cc))\n for dr,dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n nr,nc = cr+dr,cc+dc\n if 0<=nr<h and 0<=nc<w and not visited[nr][nc] and grid[nr][nc]==5:\n visited[nr][nc] = True\n queue.append((nr,nc))\n minr = min(r for r,c in comp)\n maxr = max(r for r,c in comp)\n minc = min(c for r,c in comp)\n maxc = max(c for r,c in comp)\n interior_zeros = []\n for r2 in range(minr+1, maxr):\n for c2 in range(minc+1, maxc):\n if grid[r2][c2] == 0:\n interior_zeros.append((r2,c2))\n if not interior_zeros:\n continue\n zr = [r for r,c in interior_zeros]\n zc = [c for r,c in interior_zeros]\n zminr, zmaxr = min(zr), max(zr)\n zminc, zmaxc = min(zc), max(zc)\n zh = zmaxr - zminr + 1\n zw = zmaxc - zminc + 1\n if len(interior_zeros) != zh * zw:\n continue\n if zh != zw:\n continue\n for r2,c2 in interior_zeros:\n out[r2][c2] = 2\n return out\n",
"44f52bb0": "def solve_44f52bb0(grid):\n h, w = len(grid), len(grid[0])\n symmetric = all(grid[r][c] == grid[r][w-1-c] for r in range(h) for c in range(w))\n return [[1]] if symmetric else [[7]]\n",
"4522001f": "def solve_4522001f(grid):\n nz = set()\n for r in range(3):\n for c in range(3):\n if grid[r][c] != 0:\n nz.add((r,c))\n block_r, block_c = 0, 0\n for r0 in range(2):\n for c0 in range(2):\n if all((r0+dr, c0+dc) in nz for dr in range(2) for dc in range(2)):\n block_r, block_c = r0, c0\n out = [[0]*9 for _ in range(9)]\n if block_r == 0 and block_c == 0:\n blocks = [(0,0), (4,4)]\n elif block_r == 0 and block_c == 1:\n blocks = [(0,5), (4,1)]\n elif block_r == 1 and block_c == 0:\n blocks = [(5,0), (1,4)]\n else:\n blocks = [(1,1), (5,5)]\n for br, bc in blocks:\n for dr in range(4):\n for dc in range(4):\n if 0 <= br+dr < 9 and 0 <= bc+dc < 9:\n out[br+dr][bc+dc] = 3\n return out\n",
"4612dd53": "def solve_4612dd53(grid):\n h, w = len(grid), len(grid[0])\n out = [row[:] for row in grid]\n ones = [(r,c) for r in range(h) for c in range(w) if grid[r][c] == 1]\n if not ones:\n return out\n minr = min(r for r,c in ones)\n maxr = max(r for r,c in ones)\n minc = min(c for r,c in ones)\n maxc = max(c for r,c in ones)\n\n def has_consecutive(seq):\n for i in range(len(seq)-1):\n if seq[i]==1 and seq[i+1]==1:\n return True\n return False\n\n wall_rows = set()\n for r in range(minr, maxr+1):\n row = [grid[r][c] for c in range(minc, maxc+1)]\n if has_consecutive(row):\n wall_rows.add(r)\n wall_cols = set()\n for c in range(minc, maxc+1):\n col = [grid[r][c] for r in range(minr, maxr+1)]\n if has_consecutive(col):\n wall_cols.add(c)\n\n wc_min = min(wall_cols)\n wc_max = max(wall_cols)\n wr_min = min(wall_rows)\n wr_max = max(wall_rows)\n\n for r in wall_rows:\n for c in range(wc_min, wc_max+1):\n if out[r][c] == 0:\n out[r][c] = 2\n for c in wall_cols:\n for r in range(wr_min, wr_max+1):\n if out[r][c] == 0:\n out[r][c] = 2\n return out\n",
"46442a0e": "def solve_46442a0e(grid):\n n = len(grid)\n m = len(grid[0])\n def rot90cw(g):\n return [[g[n-1-j][i] for j in range(n)] for i in range(m)]\n def rot90ccw(g):\n return [[g[j][m-1-i] for j in range(n)] for i in range(m)]\n def rot180(g):\n return [[g[n-1-r][m-1-c] for c in range(m)] for r in range(n)]\n tr = rot90cw(grid)\n bl = rot90ccw(grid)\n br = rot180(grid)\n out = [[0]*(2*m) for _ in range(2*n)]\n for r in range(n):\n for c in range(m):\n out[r][c] = grid[r][c]\n out[r][m+c] = tr[r][c]\n out[n+r][c] = bl[r][c]\n out[n+r][m+c] = br[r][c]\n return out\n"
}