Upload data/arc2_solutions_eval0.json with huggingface_hub
Browse files
data/arc2_solutions_eval0.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"135a2760": "\ndef solve(grid):\n import copy\n grid = copy.deepcopy(grid)\n rows, cols = len(grid), len(grid[0])\n bg = grid[0][0]\n\n def find_period(seq):\n n = len(seq)\n for p in range(1, n+1):\n votes = {}\n for i in range(n):\n k = i % p\n if k not in votes:\n votes[k] = {}\n v = seq[i]\n votes[k][v] = votes[k].get(v, 0) + 1\n consensus = []\n for k in range(p):\n best_v = max(votes[k], key=votes[k].get)\n consensus.append(best_v)\n matches = sum(1 for i in range(n) if seq[i] == consensus[i % p])\n if matches >= n - 2:\n return p, consensus\n return n, seq\n\n def is_border_row(row):\n return set(row) == {bg, 2} or all(v == bg for v in row)\n\n for r in range(rows):\n row = grid[r]\n if is_border_row(row):\n continue\n twos = [c for c in range(cols) if row[c] == 2]\n if len(twos) < 2:\n continue\n left = twos[0]\n right = twos[-1]\n inner = row[left+1:right]\n if not inner:\n continue\n p, cons = find_period(inner)\n for i in range(len(inner)):\n grid[r][left+1+i] = cons[i % p]\n\n return grid\n",
|
| 3 |
+
"1ae2feb7": "\ndef solve(grid):\n import copy\n grid = copy.deepcopy(grid)\n rows, cols = len(grid), len(grid[0])\n\n # Find divider column (vertical line of same non-zero value)\n divider_col = -1\n divider_val = -1\n for c in range(cols):\n col_vals = [grid[r][c] for r in range(rows)]\n if all(v == col_vals[0] for v in col_vals) and col_vals[0] != 0:\n divider_col = c\n divider_val = col_vals[0]\n break\n\n if divider_col == -1:\n return grid\n\n right_len = cols - divider_col - 1\n\n for r in range(rows):\n left = grid[r][:divider_col]\n if all(v == 0 for v in left):\n continue\n\n # Parse colored segments from left side\n segments = []\n i = 0\n while i < len(left):\n if left[i] != 0:\n color = left[i]\n length = 0\n while i < len(left) and left[i] == color:\n length += 1\n i += 1\n segments.append((color, length))\n else:\n i += 1\n\n # Apply each segment to right side\n right = [0] * right_len\n for color, length in segments:\n if length == 0:\n continue\n for j in range(right_len):\n if j % length == 0:\n right[j] = color\n\n for j in range(right_len):\n grid[r][divider_col + 1 + j] = right[j]\n\n return grid\n",
|
| 4 |
+
"1818057f": "\ndef solve(grid):\n import copy\n grid = copy.deepcopy(grid)\n rows, cols = len(grid), len(grid[0])\n\n to_mark = set()\n for r in range(1, rows-1):\n for c in range(1, cols-1):\n if grid[r][c] == 4:\n if (grid[r-1][c] == 4 and grid[r+1][c] == 4 and\n grid[r][c-1] == 4 and grid[r][c+1] == 4):\n for dr, dc in [(0,0),(-1,0),(1,0),(0,-1),(0,1)]:\n to_mark.add((r+dr, c+dc))\n\n for r, c in to_mark:\n grid[r][c] = 8\n\n return grid\n",
|
| 5 |
+
"31f7f899": "\ndef solve(grid):\n import copy\n grid = copy.deepcopy(grid)\n rows, cols = len(grid), len(grid[0])\n\n # Find beam row (row with 6s)\n beam_row = -1\n for r in range(rows):\n if 6 in grid[r]:\n beam_row = r\n break\n\n # Find vertical lines\n lines = {}\n for c in range(cols):\n color = None\n for r in range(rows):\n v = grid[r][c]\n if r != beam_row and v != 8 and v != 6:\n color = v\n break\n if color is None:\n continue\n extent_above = 0\n for r in range(beam_row-1, -1, -1):\n if grid[r][c] == color:\n extent_above += 1\n else:\n break\n extent_below = 0\n for r in range(beam_row+1, rows):\n if grid[r][c] == color:\n extent_below += 1\n else:\n break\n extent = max(extent_above, extent_below)\n if extent > 0 or grid[beam_row][c] == color:\n lines[c] = (color, extent)\n\n if not lines:\n return grid\n\n sorted_cols = sorted(lines.keys())\n extents = sorted([lines[c][1] for c in sorted_cols])\n\n for idx, c in enumerate(sorted_cols):\n old_color, old_ext = lines[c]\n new_ext = extents[idx]\n for r in range(rows):\n if r != beam_row and grid[r][c] == old_color:\n grid[r][c] = 8\n for d in range(1, new_ext + 1):\n if beam_row - d >= 0:\n grid[beam_row - d][c] = old_color\n if beam_row + d < rows:\n grid[beam_row + d][c] = old_color\n\n return grid\n",
|
| 6 |
+
"16de56c4": "\ndef solve(grid):\n import copy\n from collections import Counter\n grid = copy.deepcopy(grid)\n rows, cols = len(grid), len(grid[0])\n\n row_count = sum(1 for r in range(rows) if sum(1 for c in range(cols) if grid[r][c] != 0) >= 2)\n col_count = sum(1 for c in range(cols) if sum(1 for r in range(rows) if grid[r][c] != 0) >= 2)\n is_row = row_count >= col_count\n\n def process_line(nz, length, is_row_mode):\n if len(nz) < 2:\n return None\n colors = Counter(v for _, v in nz)\n\n if len(colors) == 1:\n color = nz[0][1]\n positions = sorted([p for p, v in nz])\n period = positions[1] - positions[0]\n start = positions[0]\n result = [0] * length\n for p in range(length):\n if (p - start) % period == 0:\n result[p] = color\n return result\n elif len(colors) == 2:\n rep_colors = [c for c, cnt in colors.items() if cnt >= 2]\n uniq_colors = [c for c, cnt in colors.items() if cnt == 1]\n if not rep_colors or not uniq_colors:\n return None\n rep_color = rep_colors[0]\n uniq_color = uniq_colors[0]\n rep_pos = sorted([p for p, v in nz if v == rep_color])\n uniq_pos = [p for p, v in nz if v == uniq_color][0]\n period = rep_pos[1] - rep_pos[0]\n start = rep_pos[0]\n on_grid = (uniq_pos - start) % period == 0\n result = [0] * length\n max_pos = max(p for p, v in nz)\n if on_grid:\n if is_row_mode:\n tile_range = range(start, max_pos + 1)\n else:\n tile_range = range(length)\n for p in tile_range:\n if (p - start) % period == 0:\n result[p] = uniq_color\n else:\n for p in range(length):\n if (p - start) % period == 0:\n result[p] = rep_color\n result[uniq_pos] = uniq_color\n return result\n return None\n\n if is_row:\n for r in range(rows):\n nz = [(c, grid[r][c]) for c in range(cols) if grid[r][c] != 0]\n if len(nz) < 2:\n continue\n result = process_line(nz, cols, True)\n if result:\n grid[r] = result\n else:\n for c in range(cols):\n nz = [(r, grid[r][c]) for r in range(rows) if grid[r][c] != 0]\n if len(nz) < 2:\n continue\n result = process_line(nz, rows, False)\n if result:\n for r in range(rows):\n grid[r][c] = result[r]\n\n return grid\n"
|
| 7 |
+
}
|