grapheneaffiliates commited on
Commit
6658717
·
verified ·
1 Parent(s): 883af64

Upload data/arc_python_solutions_b18.json with huggingface_hub

Browse files
Files changed (1) hide show
  1. data/arc_python_solutions_b18.json +1510 -0
data/arc_python_solutions_b18.json ADDED
@@ -0,0 +1,1510 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "b527c5c6": {
3
+ "solve": "def solve_b527c5c6(grid):\n \"\"\"Two rectangles of 3s, each has one 2. The 2 on the edge indicates direction\n to extend. Extension width = 2*rect_dim_along_edge - 1, centered on the 2.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n\n visited = [[False]*cols for _ in range(rows)]\n\n def flood_fill(r, c):\n stack = [(r, c)]\n cells = []\n while stack:\n cr, cc = stack.pop()\n if cr < 0 or cr >= rows or cc < 0 or cc >= cols:\n continue\n if visited[cr][cc] or grid[cr][cc] == 0:\n continue\n visited[cr][cc] = True\n cells.append((cr, cc))\n for dr, dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n stack.append((cr+dr, cc+dc))\n return cells\n\n rectangles = []\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0 and not visited[r][c]:\n cells = flood_fill(r, c)\n if cells:\n rectangles.append(cells)\n\n for rect_cells in rectangles:\n two_pos = None\n for r, c in rect_cells:\n if grid[r][c] == 2:\n two_pos = (r, c)\n break\n if two_pos is None:\n continue\n\n min_r = min(r for r, c in rect_cells)\n max_r = max(r for r, c in rect_cells)\n min_c = min(c for r, c in rect_cells)\n max_c = max(c for r, c in rect_cells)\n\n tr, tc = two_pos\n rect_h = max_r - min_r + 1\n rect_w = max_c - min_c + 1\n\n if tr == min_r: # top edge -> extend upward\n # Extension direction is vertical (up), edge is horizontal (top)\n # Perpendicular spread = 2 * rect_h - 1, centered on tc\n spread = rect_h - 1\n for r in range(min_r - 1, -1, -1):\n for c in range(tc - spread, tc + spread + 1):\n if 0 <= c < cols:\n if c == tc:\n out[r][c] = 2\n else:\n out[r][c] = 3\n elif tr == max_r: # bottom edge -> extend downward\n spread = rect_h - 1\n for r in range(max_r + 1, rows):\n for c in range(tc - spread, tc + spread + 1):\n if 0 <= c < cols:\n if c == tc:\n out[r][c] = 2\n else:\n out[r][c] = 3\n elif tc == min_c: # left edge -> extend leftward\n spread = rect_w - 1\n for c in range(min_c - 1, -1, -1):\n for r in range(tr - spread, tr + spread + 1):\n if 0 <= r < rows:\n if r == tr:\n out[r][c] = 2\n else:\n out[r][c] = 3\n elif tc == max_c: # right edge -> extend rightward\n spread = rect_w - 1\n for c in range(max_c + 1, cols):\n for r in range(tr - spread, tr + spread + 1):\n if 0 <= r < rows:\n if r == tr:\n out[r][c] = 2\n else:\n out[r][c] = 3\n\n return out\n",
4
+ "test_output": [
5
+ [
6
+ [
7
+ 0,
8
+ 0,
9
+ 0,
10
+ 0,
11
+ 3,
12
+ 3,
13
+ 3,
14
+ 0,
15
+ 3,
16
+ 3,
17
+ 3,
18
+ 3,
19
+ 3,
20
+ 2,
21
+ 3,
22
+ 3,
23
+ 3,
24
+ 3,
25
+ 3,
26
+ 0
27
+ ],
28
+ [
29
+ 0,
30
+ 0,
31
+ 0,
32
+ 0,
33
+ 3,
34
+ 3,
35
+ 3,
36
+ 0,
37
+ 3,
38
+ 3,
39
+ 3,
40
+ 3,
41
+ 3,
42
+ 2,
43
+ 3,
44
+ 3,
45
+ 3,
46
+ 3,
47
+ 3,
48
+ 0
49
+ ],
50
+ [
51
+ 0,
52
+ 0,
53
+ 0,
54
+ 0,
55
+ 3,
56
+ 3,
57
+ 3,
58
+ 0,
59
+ 3,
60
+ 3,
61
+ 3,
62
+ 3,
63
+ 3,
64
+ 2,
65
+ 3,
66
+ 3,
67
+ 3,
68
+ 3,
69
+ 3,
70
+ 0
71
+ ],
72
+ [
73
+ 3,
74
+ 3,
75
+ 3,
76
+ 3,
77
+ 3,
78
+ 3,
79
+ 3,
80
+ 0,
81
+ 3,
82
+ 3,
83
+ 3,
84
+ 3,
85
+ 3,
86
+ 2,
87
+ 3,
88
+ 3,
89
+ 3,
90
+ 3,
91
+ 3,
92
+ 0
93
+ ],
94
+ [
95
+ 3,
96
+ 3,
97
+ 3,
98
+ 3,
99
+ 3,
100
+ 3,
101
+ 3,
102
+ 0,
103
+ 3,
104
+ 3,
105
+ 3,
106
+ 3,
107
+ 3,
108
+ 2,
109
+ 3,
110
+ 3,
111
+ 3,
112
+ 3,
113
+ 3,
114
+ 0
115
+ ],
116
+ [
117
+ 2,
118
+ 2,
119
+ 2,
120
+ 2,
121
+ 2,
122
+ 3,
123
+ 3,
124
+ 0,
125
+ 3,
126
+ 3,
127
+ 3,
128
+ 3,
129
+ 3,
130
+ 2,
131
+ 3,
132
+ 3,
133
+ 3,
134
+ 3,
135
+ 3,
136
+ 0
137
+ ],
138
+ [
139
+ 3,
140
+ 3,
141
+ 3,
142
+ 3,
143
+ 3,
144
+ 3,
145
+ 3,
146
+ 0,
147
+ 3,
148
+ 3,
149
+ 3,
150
+ 3,
151
+ 3,
152
+ 2,
153
+ 3,
154
+ 3,
155
+ 3,
156
+ 3,
157
+ 3,
158
+ 0
159
+ ],
160
+ [
161
+ 3,
162
+ 3,
163
+ 3,
164
+ 3,
165
+ 3,
166
+ 3,
167
+ 3,
168
+ 0,
169
+ 3,
170
+ 3,
171
+ 3,
172
+ 3,
173
+ 3,
174
+ 2,
175
+ 3,
176
+ 3,
177
+ 3,
178
+ 3,
179
+ 3,
180
+ 0
181
+ ],
182
+ [
183
+ 0,
184
+ 0,
185
+ 0,
186
+ 0,
187
+ 3,
188
+ 3,
189
+ 3,
190
+ 0,
191
+ 3,
192
+ 3,
193
+ 3,
194
+ 3,
195
+ 3,
196
+ 2,
197
+ 3,
198
+ 3,
199
+ 3,
200
+ 3,
201
+ 3,
202
+ 0
203
+ ],
204
+ [
205
+ 0,
206
+ 0,
207
+ 0,
208
+ 0,
209
+ 3,
210
+ 3,
211
+ 3,
212
+ 0,
213
+ 3,
214
+ 3,
215
+ 3,
216
+ 3,
217
+ 3,
218
+ 2,
219
+ 3,
220
+ 3,
221
+ 3,
222
+ 3,
223
+ 3,
224
+ 0
225
+ ],
226
+ [
227
+ 0,
228
+ 0,
229
+ 0,
230
+ 0,
231
+ 3,
232
+ 3,
233
+ 3,
234
+ 0,
235
+ 3,
236
+ 3,
237
+ 3,
238
+ 3,
239
+ 3,
240
+ 2,
241
+ 3,
242
+ 3,
243
+ 3,
244
+ 3,
245
+ 3,
246
+ 0
247
+ ],
248
+ [
249
+ 0,
250
+ 0,
251
+ 0,
252
+ 0,
253
+ 0,
254
+ 0,
255
+ 0,
256
+ 0,
257
+ 3,
258
+ 3,
259
+ 3,
260
+ 3,
261
+ 3,
262
+ 2,
263
+ 3,
264
+ 3,
265
+ 3,
266
+ 3,
267
+ 3,
268
+ 0
269
+ ],
270
+ [
271
+ 0,
272
+ 0,
273
+ 0,
274
+ 0,
275
+ 0,
276
+ 0,
277
+ 0,
278
+ 0,
279
+ 3,
280
+ 3,
281
+ 3,
282
+ 3,
283
+ 3,
284
+ 2,
285
+ 3,
286
+ 3,
287
+ 3,
288
+ 3,
289
+ 3,
290
+ 0
291
+ ],
292
+ [
293
+ 0,
294
+ 0,
295
+ 0,
296
+ 0,
297
+ 0,
298
+ 0,
299
+ 0,
300
+ 0,
301
+ 3,
302
+ 3,
303
+ 3,
304
+ 3,
305
+ 3,
306
+ 2,
307
+ 3,
308
+ 3,
309
+ 3,
310
+ 3,
311
+ 3,
312
+ 0
313
+ ],
314
+ [
315
+ 0,
316
+ 0,
317
+ 0,
318
+ 0,
319
+ 0,
320
+ 0,
321
+ 0,
322
+ 3,
323
+ 3,
324
+ 3,
325
+ 3,
326
+ 3,
327
+ 3,
328
+ 2,
329
+ 3,
330
+ 3,
331
+ 3,
332
+ 3,
333
+ 3,
334
+ 3
335
+ ],
336
+ [
337
+ 0,
338
+ 0,
339
+ 0,
340
+ 0,
341
+ 0,
342
+ 0,
343
+ 0,
344
+ 3,
345
+ 3,
346
+ 3,
347
+ 3,
348
+ 3,
349
+ 3,
350
+ 3,
351
+ 3,
352
+ 3,
353
+ 3,
354
+ 3,
355
+ 3,
356
+ 3
357
+ ],
358
+ [
359
+ 0,
360
+ 0,
361
+ 0,
362
+ 0,
363
+ 0,
364
+ 0,
365
+ 0,
366
+ 3,
367
+ 3,
368
+ 3,
369
+ 3,
370
+ 3,
371
+ 3,
372
+ 3,
373
+ 3,
374
+ 3,
375
+ 3,
376
+ 3,
377
+ 3,
378
+ 3
379
+ ],
380
+ [
381
+ 0,
382
+ 0,
383
+ 0,
384
+ 0,
385
+ 0,
386
+ 0,
387
+ 0,
388
+ 3,
389
+ 3,
390
+ 3,
391
+ 3,
392
+ 3,
393
+ 3,
394
+ 3,
395
+ 3,
396
+ 3,
397
+ 3,
398
+ 3,
399
+ 3,
400
+ 3
401
+ ],
402
+ [
403
+ 0,
404
+ 0,
405
+ 0,
406
+ 0,
407
+ 0,
408
+ 0,
409
+ 0,
410
+ 3,
411
+ 3,
412
+ 3,
413
+ 3,
414
+ 3,
415
+ 3,
416
+ 3,
417
+ 3,
418
+ 3,
419
+ 3,
420
+ 3,
421
+ 3,
422
+ 3
423
+ ],
424
+ [
425
+ 0,
426
+ 0,
427
+ 0,
428
+ 0,
429
+ 0,
430
+ 0,
431
+ 0,
432
+ 3,
433
+ 3,
434
+ 3,
435
+ 3,
436
+ 3,
437
+ 3,
438
+ 3,
439
+ 3,
440
+ 3,
441
+ 3,
442
+ 3,
443
+ 3,
444
+ 3
445
+ ]
446
+ ]
447
+ ]
448
+ },
449
+ "b548a754": {
450
+ "solve": "def solve_b548a754(grid):\n \"\"\"Rectangle with border color and inner color. An 8 dot indicates direction.\n Stretch the rectangle toward the 8, keeping border/inner pattern.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n\n eight_r, eight_c = None, None\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] == 8:\n eight_r, eight_c = r, c\n break\n\n rect_cells = []\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0 and grid[r][c] != 8:\n rect_cells.append((r, c))\n\n min_r = min(r for r, c in rect_cells)\n max_r = max(r for r, c in rect_cells)\n min_c = min(c for r, c in rect_cells)\n max_c = max(c for r, c in rect_cells)\n\n border_color = grid[min_r][min_c]\n inner_color = None\n for r in range(min_r+1, max_r):\n for c in range(min_c+1, max_c):\n if grid[r][c] != border_color:\n inner_color = grid[r][c]\n break\n if inner_color:\n break\n\n out[eight_r][eight_c] = 0\n\n # Determine new bounding box\n new_min_r, new_max_r = min_r, max_r\n new_min_c, new_max_c = min_c, max_c\n\n if eight_r < min_r:\n new_min_r = eight_r\n elif eight_r > max_r:\n new_max_r = eight_r\n elif eight_c < min_c:\n new_min_c = eight_c\n elif eight_c > max_c:\n new_max_c = eight_c\n\n for r in range(new_min_r, new_max_r + 1):\n for c in range(new_min_c, new_max_c + 1):\n if r == new_min_r or r == new_max_r or c == new_min_c or c == new_max_c:\n out[r][c] = border_color\n else:\n out[r][c] = inner_color\n\n return out\n",
451
+ "test_output": [
452
+ [
453
+ [
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 0,
465
+ 0,
466
+ 0
467
+ ],
468
+ [
469
+ 0,
470
+ 0,
471
+ 0,
472
+ 6,
473
+ 6,
474
+ 6,
475
+ 6,
476
+ 6,
477
+ 0,
478
+ 0,
479
+ 0,
480
+ 0,
481
+ 0
482
+ ],
483
+ [
484
+ 0,
485
+ 0,
486
+ 0,
487
+ 6,
488
+ 4,
489
+ 4,
490
+ 4,
491
+ 6,
492
+ 0,
493
+ 0,
494
+ 0,
495
+ 0,
496
+ 0
497
+ ],
498
+ [
499
+ 0,
500
+ 0,
501
+ 0,
502
+ 6,
503
+ 4,
504
+ 4,
505
+ 4,
506
+ 6,
507
+ 0,
508
+ 0,
509
+ 0,
510
+ 0,
511
+ 0
512
+ ],
513
+ [
514
+ 0,
515
+ 0,
516
+ 0,
517
+ 6,
518
+ 4,
519
+ 4,
520
+ 4,
521
+ 6,
522
+ 0,
523
+ 0,
524
+ 0,
525
+ 0,
526
+ 0
527
+ ],
528
+ [
529
+ 0,
530
+ 0,
531
+ 0,
532
+ 6,
533
+ 4,
534
+ 4,
535
+ 4,
536
+ 6,
537
+ 0,
538
+ 0,
539
+ 0,
540
+ 0,
541
+ 0
542
+ ],
543
+ [
544
+ 0,
545
+ 0,
546
+ 0,
547
+ 6,
548
+ 4,
549
+ 4,
550
+ 4,
551
+ 6,
552
+ 0,
553
+ 0,
554
+ 0,
555
+ 0,
556
+ 0
557
+ ],
558
+ [
559
+ 0,
560
+ 0,
561
+ 0,
562
+ 6,
563
+ 4,
564
+ 4,
565
+ 4,
566
+ 6,
567
+ 0,
568
+ 0,
569
+ 0,
570
+ 0,
571
+ 0
572
+ ],
573
+ [
574
+ 0,
575
+ 0,
576
+ 0,
577
+ 6,
578
+ 4,
579
+ 4,
580
+ 4,
581
+ 6,
582
+ 0,
583
+ 0,
584
+ 0,
585
+ 0,
586
+ 0
587
+ ],
588
+ [
589
+ 0,
590
+ 0,
591
+ 0,
592
+ 6,
593
+ 4,
594
+ 4,
595
+ 4,
596
+ 6,
597
+ 0,
598
+ 0,
599
+ 0,
600
+ 0,
601
+ 0
602
+ ],
603
+ [
604
+ 0,
605
+ 0,
606
+ 0,
607
+ 6,
608
+ 4,
609
+ 4,
610
+ 4,
611
+ 6,
612
+ 0,
613
+ 0,
614
+ 0,
615
+ 0,
616
+ 0
617
+ ],
618
+ [
619
+ 0,
620
+ 0,
621
+ 0,
622
+ 6,
623
+ 4,
624
+ 4,
625
+ 4,
626
+ 6,
627
+ 0,
628
+ 0,
629
+ 0,
630
+ 0,
631
+ 0
632
+ ],
633
+ [
634
+ 0,
635
+ 0,
636
+ 0,
637
+ 6,
638
+ 6,
639
+ 6,
640
+ 6,
641
+ 6,
642
+ 0,
643
+ 0,
644
+ 0,
645
+ 0,
646
+ 0
647
+ ]
648
+ ]
649
+ ]
650
+ },
651
+ "b60334d2": {
652
+ "solve": "def solve_b60334d2(grid):\n \"\"\"Each 5 gets a plus pattern: diagonals get 5, orthogonals get 1, center becomes 0.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [[0]*cols for _ in range(rows)]\n\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] == 5:\n for dr in [-1, 0, 1]:\n for dc in [-1, 0, 1]:\n nr, nc = r + dr, c + dc\n if 0 <= nr < rows and 0 <= nc < cols:\n if dr == 0 and dc == 0:\n pass\n elif dr == 0 or dc == 0:\n out[nr][nc] = 1\n else:\n out[nr][nc] = 5\n\n return out\n",
653
+ "test_output": [
654
+ [
655
+ [
656
+ 5,
657
+ 1,
658
+ 5,
659
+ 0,
660
+ 0,
661
+ 0,
662
+ 0,
663
+ 0,
664
+ 0
665
+ ],
666
+ [
667
+ 1,
668
+ 0,
669
+ 1,
670
+ 0,
671
+ 0,
672
+ 0,
673
+ 0,
674
+ 0,
675
+ 0
676
+ ],
677
+ [
678
+ 5,
679
+ 1,
680
+ 5,
681
+ 5,
682
+ 1,
683
+ 5,
684
+ 0,
685
+ 0,
686
+ 0
687
+ ],
688
+ [
689
+ 0,
690
+ 0,
691
+ 0,
692
+ 1,
693
+ 0,
694
+ 1,
695
+ 0,
696
+ 0,
697
+ 0
698
+ ],
699
+ [
700
+ 0,
701
+ 0,
702
+ 0,
703
+ 5,
704
+ 1,
705
+ 5,
706
+ 5,
707
+ 1,
708
+ 5
709
+ ],
710
+ [
711
+ 0,
712
+ 0,
713
+ 0,
714
+ 0,
715
+ 0,
716
+ 0,
717
+ 1,
718
+ 0,
719
+ 1
720
+ ],
721
+ [
722
+ 0,
723
+ 5,
724
+ 1,
725
+ 5,
726
+ 0,
727
+ 0,
728
+ 5,
729
+ 1,
730
+ 5
731
+ ],
732
+ [
733
+ 0,
734
+ 1,
735
+ 0,
736
+ 1,
737
+ 0,
738
+ 0,
739
+ 0,
740
+ 0,
741
+ 0
742
+ ],
743
+ [
744
+ 0,
745
+ 5,
746
+ 1,
747
+ 5,
748
+ 0,
749
+ 0,
750
+ 0,
751
+ 0,
752
+ 0
753
+ ]
754
+ ]
755
+ ]
756
+ },
757
+ "b6afb2da": {
758
+ "solve": "def solve_b6afb2da(grid):\n \"\"\"Each rectangle of 5s: corners->1, border non-corners->4, interior->2.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n\n visited = [[False]*cols for _ in range(rows)]\n\n def flood_fill(r, c):\n stack = [(r, c)]\n cells = []\n while stack:\n cr, cc = stack.pop()\n if cr < 0 or cr >= rows or cc < 0 or cc >= cols:\n continue\n if visited[cr][cc] or grid[cr][cc] != 5:\n continue\n visited[cr][cc] = True\n cells.append((cr, cc))\n for dr, dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n stack.append((cr+dr, cc+dc))\n return cells\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 cells = flood_fill(r, c)\n min_r2 = min(r for r, c in cells)\n max_r2 = max(r for r, c in cells)\n min_c2 = min(c for r, c in cells)\n max_c2 = max(c for r, c in cells)\n\n for cr, cc in cells:\n is_top = (cr == min_r2)\n is_bot = (cr == max_r2)\n is_left = (cc == min_c2)\n is_right = (cc == max_c2)\n\n is_corner = (is_top or is_bot) and (is_left or is_right)\n is_border = is_top or is_bot or is_left or is_right\n\n if is_corner:\n out[cr][cc] = 1\n elif is_border:\n out[cr][cc] = 4\n else:\n out[cr][cc] = 2\n\n return out\n",
759
+ "test_output": [
760
+ [
761
+ [
762
+ 0,
763
+ 1,
764
+ 4,
765
+ 4,
766
+ 1,
767
+ 0,
768
+ 0,
769
+ 0,
770
+ 0,
771
+ 0
772
+ ],
773
+ [
774
+ 0,
775
+ 4,
776
+ 2,
777
+ 2,
778
+ 4,
779
+ 0,
780
+ 0,
781
+ 0,
782
+ 0,
783
+ 0
784
+ ],
785
+ [
786
+ 0,
787
+ 4,
788
+ 2,
789
+ 2,
790
+ 4,
791
+ 0,
792
+ 0,
793
+ 0,
794
+ 0,
795
+ 0
796
+ ],
797
+ [
798
+ 0,
799
+ 4,
800
+ 2,
801
+ 2,
802
+ 4,
803
+ 0,
804
+ 0,
805
+ 0,
806
+ 0,
807
+ 0
808
+ ],
809
+ [
810
+ 0,
811
+ 4,
812
+ 2,
813
+ 2,
814
+ 4,
815
+ 0,
816
+ 0,
817
+ 0,
818
+ 0,
819
+ 0
820
+ ],
821
+ [
822
+ 0,
823
+ 1,
824
+ 4,
825
+ 4,
826
+ 1,
827
+ 0,
828
+ 0,
829
+ 0,
830
+ 0,
831
+ 0
832
+ ],
833
+ [
834
+ 0,
835
+ 0,
836
+ 0,
837
+ 0,
838
+ 0,
839
+ 0,
840
+ 0,
841
+ 0,
842
+ 0,
843
+ 0
844
+ ],
845
+ [
846
+ 0,
847
+ 0,
848
+ 0,
849
+ 0,
850
+ 1,
851
+ 4,
852
+ 4,
853
+ 4,
854
+ 4,
855
+ 1
856
+ ],
857
+ [
858
+ 0,
859
+ 0,
860
+ 0,
861
+ 0,
862
+ 4,
863
+ 2,
864
+ 2,
865
+ 2,
866
+ 2,
867
+ 4
868
+ ],
869
+ [
870
+ 0,
871
+ 0,
872
+ 0,
873
+ 0,
874
+ 1,
875
+ 4,
876
+ 4,
877
+ 4,
878
+ 4,
879
+ 1
880
+ ]
881
+ ]
882
+ ]
883
+ },
884
+ "b7249182": {
885
+ "solve": "def solve_b7249182(grid):\n \"\"\"Two dots on same row or column. They extend toward each other,\n meeting with bracket shapes. Arm width perpendicular is always 2.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n\n dots = []\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0:\n dots.append((r, c, grid[r][c]))\n\n r1, c1, color1 = dots[0]\n r2, c2, color2 = dots[1]\n\n if c1 == c2:\n # Same column - vertical arrangement\n if r1 > r2:\n r1, c1, color1, r2, c2, color2 = r2, c2, color2, r1, c1, color1\n\n dist = r2 - r1\n half = dist // 2\n half_w = 2\n\n # Color1 vertical line from r1 down\n bar1_r = r1 + half - 1\n for r in range(r1 + 1, bar1_r):\n out[r][c1] = color1\n # Horizontal bar for color1\n for c in range(c1 - half_w, c1 + half_w + 1):\n if 0 <= c < cols:\n out[bar1_r][c] = color1\n # Side row for color1\n side1_r = bar1_r + 1\n if 0 <= c1 - half_w < cols:\n out[side1_r][c1 - half_w] = color1\n if 0 <= c1 + half_w < cols:\n out[side1_r][c1 + half_w] = color1\n\n # Color2 vertical line from r2 up\n bar2_r = r2 - half + 1\n for r in range(r2 - 1, bar2_r, -1):\n out[r][c2] = color2\n # Horizontal bar for color2\n for c in range(c2 - half_w, c2 + half_w + 1):\n if 0 <= c < cols:\n out[bar2_r][c] = color2\n # Side row for color2\n side2_r = bar2_r - 1\n if 0 <= c2 - half_w < cols:\n out[side2_r][c2 - half_w] = color2\n if 0 <= c2 + half_w < cols:\n out[side2_r][c2 + half_w] = color2\n\n else: # Same row\n if c1 > c2:\n r1, c1, color1, r2, c2, color2 = r2, c2, color2, r1, c1, color1\n\n dist = c2 - c1\n half = dist // 2\n half_w = 2\n\n # Color1 horizontal line from c1 right\n bar1_c = c1 + half - 1\n for c in range(c1 + 1, bar1_c):\n out[r1][c] = color1\n # Vertical bar for color1\n for r in range(r1 - half_w, r1 + half_w + 1):\n if 0 <= r < rows:\n out[r][bar1_c] = color1\n # Side col for color1\n side1_c = bar1_c + 1\n if 0 <= r1 - half_w < rows:\n out[r1 - half_w][side1_c] = color1\n if 0 <= r1 + half_w < rows:\n out[r1 + half_w][side1_c] = color1\n\n # Color2 horizontal line from c2 left\n bar2_c = c2 - half + 1\n for c in range(c2 - 1, bar2_c, -1):\n out[r2][c] = color2\n # Vertical bar for color2\n for r in range(r2 - half_w, r2 + half_w + 1):\n if 0 <= r < rows:\n out[r][bar2_c] = color2\n # Side col for color2\n side2_c = bar2_c - 1\n if 0 <= r2 - half_w < rows:\n out[r2 - half_w][side2_c] = color2\n if 0 <= r2 + half_w < rows:\n out[r2 + half_w][side2_c] = color2\n\n return out\n",
886
+ "test_output": [
887
+ [
888
+ [
889
+ 0,
890
+ 0,
891
+ 0,
892
+ 0,
893
+ 0,
894
+ 0,
895
+ 0,
896
+ 0,
897
+ 0
898
+ ],
899
+ [
900
+ 0,
901
+ 0,
902
+ 0,
903
+ 7,
904
+ 0,
905
+ 0,
906
+ 0,
907
+ 0,
908
+ 0
909
+ ],
910
+ [
911
+ 0,
912
+ 0,
913
+ 0,
914
+ 7,
915
+ 0,
916
+ 0,
917
+ 0,
918
+ 0,
919
+ 0
920
+ ],
921
+ [
922
+ 0,
923
+ 0,
924
+ 0,
925
+ 7,
926
+ 0,
927
+ 0,
928
+ 0,
929
+ 0,
930
+ 0
931
+ ],
932
+ [
933
+ 0,
934
+ 0,
935
+ 0,
936
+ 7,
937
+ 0,
938
+ 0,
939
+ 0,
940
+ 0,
941
+ 0
942
+ ],
943
+ [
944
+ 0,
945
+ 0,
946
+ 0,
947
+ 7,
948
+ 0,
949
+ 0,
950
+ 0,
951
+ 0,
952
+ 0
953
+ ],
954
+ [
955
+ 0,
956
+ 0,
957
+ 0,
958
+ 7,
959
+ 0,
960
+ 0,
961
+ 0,
962
+ 0,
963
+ 0
964
+ ],
965
+ [
966
+ 0,
967
+ 7,
968
+ 7,
969
+ 7,
970
+ 7,
971
+ 7,
972
+ 0,
973
+ 0,
974
+ 0
975
+ ],
976
+ [
977
+ 0,
978
+ 7,
979
+ 0,
980
+ 0,
981
+ 0,
982
+ 7,
983
+ 0,
984
+ 0,
985
+ 0
986
+ ],
987
+ [
988
+ 0,
989
+ 6,
990
+ 0,
991
+ 0,
992
+ 0,
993
+ 6,
994
+ 0,
995
+ 0,
996
+ 0
997
+ ],
998
+ [
999
+ 0,
1000
+ 6,
1001
+ 6,
1002
+ 6,
1003
+ 6,
1004
+ 6,
1005
+ 0,
1006
+ 0,
1007
+ 0
1008
+ ],
1009
+ [
1010
+ 0,
1011
+ 0,
1012
+ 0,
1013
+ 6,
1014
+ 0,
1015
+ 0,
1016
+ 0,
1017
+ 0,
1018
+ 0
1019
+ ],
1020
+ [
1021
+ 0,
1022
+ 0,
1023
+ 0,
1024
+ 6,
1025
+ 0,
1026
+ 0,
1027
+ 0,
1028
+ 0,
1029
+ 0
1030
+ ],
1031
+ [
1032
+ 0,
1033
+ 0,
1034
+ 0,
1035
+ 6,
1036
+ 0,
1037
+ 0,
1038
+ 0,
1039
+ 0,
1040
+ 0
1041
+ ],
1042
+ [
1043
+ 0,
1044
+ 0,
1045
+ 0,
1046
+ 6,
1047
+ 0,
1048
+ 0,
1049
+ 0,
1050
+ 0,
1051
+ 0
1052
+ ],
1053
+ [
1054
+ 0,
1055
+ 0,
1056
+ 0,
1057
+ 6,
1058
+ 0,
1059
+ 0,
1060
+ 0,
1061
+ 0,
1062
+ 0
1063
+ ],
1064
+ [
1065
+ 0,
1066
+ 0,
1067
+ 0,
1068
+ 6,
1069
+ 0,
1070
+ 0,
1071
+ 0,
1072
+ 0,
1073
+ 0
1074
+ ],
1075
+ [
1076
+ 0,
1077
+ 0,
1078
+ 0,
1079
+ 0,
1080
+ 0,
1081
+ 0,
1082
+ 0,
1083
+ 0,
1084
+ 0
1085
+ ],
1086
+ [
1087
+ 0,
1088
+ 0,
1089
+ 0,
1090
+ 0,
1091
+ 0,
1092
+ 0,
1093
+ 0,
1094
+ 0,
1095
+ 0
1096
+ ]
1097
+ ]
1098
+ ]
1099
+ },
1100
+ "b8cdaf2b": {
1101
+ "solve": "def solve_b8cdaf2b(grid):\n \"\"\"Bottom rows form a base pattern. The center color extends diagonally upward\n from the inner edges of the second-to-last row.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n\n bottom = grid[rows-1]\n second = grid[rows-2]\n\n center_c = cols // 2\n center_color = bottom[center_c]\n\n inner_cells = [(c, second[c]) for c in range(cols) if second[c] != 0]\n inner_left = min(c for c, _ in inner_cells)\n inner_right = max(c for c, _ in inner_cells)\n\n outer_left = min(c for c in range(cols) if bottom[c] != 0)\n outer_right = max(c for c in range(cols) if bottom[c] != 0)\n\n gap_left = inner_left - outer_left\n gap_right = outer_right - inner_right\n\n for step in range(1, gap_left + 1):\n r = rows - 2 - step\n c = inner_left - step\n if 0 <= r < rows and 0 <= c < cols:\n out[r][c] = center_color\n\n for step in range(1, gap_right + 1):\n r = rows - 2 - step\n c = inner_right + step\n if 0 <= r < rows and 0 <= c < cols:\n out[r][c] = center_color\n\n return out\n",
1102
+ "test_output": [
1103
+ [
1104
+ [
1105
+ 0,
1106
+ 0,
1107
+ 0,
1108
+ 0,
1109
+ 0,
1110
+ 0,
1111
+ 0,
1112
+ 0,
1113
+ 0
1114
+ ],
1115
+ [
1116
+ 0,
1117
+ 0,
1118
+ 0,
1119
+ 0,
1120
+ 0,
1121
+ 0,
1122
+ 0,
1123
+ 0,
1124
+ 0
1125
+ ],
1126
+ [
1127
+ 0,
1128
+ 0,
1129
+ 0,
1130
+ 0,
1131
+ 0,
1132
+ 0,
1133
+ 0,
1134
+ 0,
1135
+ 0
1136
+ ],
1137
+ [
1138
+ 0,
1139
+ 0,
1140
+ 0,
1141
+ 0,
1142
+ 0,
1143
+ 0,
1144
+ 0,
1145
+ 0,
1146
+ 0
1147
+ ],
1148
+ [
1149
+ 2,
1150
+ 0,
1151
+ 0,
1152
+ 0,
1153
+ 0,
1154
+ 0,
1155
+ 0,
1156
+ 0,
1157
+ 2
1158
+ ],
1159
+ [
1160
+ 0,
1161
+ 2,
1162
+ 0,
1163
+ 0,
1164
+ 0,
1165
+ 0,
1166
+ 0,
1167
+ 2,
1168
+ 0
1169
+ ],
1170
+ [
1171
+ 0,
1172
+ 0,
1173
+ 2,
1174
+ 0,
1175
+ 0,
1176
+ 0,
1177
+ 2,
1178
+ 0,
1179
+ 0
1180
+ ],
1181
+ [
1182
+ 0,
1183
+ 0,
1184
+ 0,
1185
+ 8,
1186
+ 8,
1187
+ 8,
1188
+ 0,
1189
+ 0,
1190
+ 0
1191
+ ],
1192
+ [
1193
+ 8,
1194
+ 8,
1195
+ 8,
1196
+ 2,
1197
+ 2,
1198
+ 2,
1199
+ 8,
1200
+ 8,
1201
+ 8
1202
+ ]
1203
+ ]
1204
+ ]
1205
+ },
1206
+ "b91ae062": {
1207
+ "solve": "def solve_b91ae062(grid):\n \"\"\"3x3 input scaled up by factor = number of distinct non-zero colors.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n\n distinct_colors = len(set(grid[r][c] for r in range(rows) for c in range(cols) if grid[r][c] != 0))\n scale = distinct_colors\n\n out_rows = rows * scale\n out_cols = cols * scale\n out = [[0]*out_cols for _ in range(out_rows)]\n\n for r in range(rows):\n for c in range(cols):\n val = grid[r][c]\n for dr in range(scale):\n for dc in range(scale):\n out[r*scale+dr][c*scale+dc] = val\n\n return out\n",
1208
+ "test_output": [
1209
+ [
1210
+ [
1211
+ 0,
1212
+ 0,
1213
+ 0,
1214
+ 0,
1215
+ 1,
1216
+ 1,
1217
+ 1,
1218
+ 1,
1219
+ 0,
1220
+ 0,
1221
+ 0,
1222
+ 0
1223
+ ],
1224
+ [
1225
+ 0,
1226
+ 0,
1227
+ 0,
1228
+ 0,
1229
+ 1,
1230
+ 1,
1231
+ 1,
1232
+ 1,
1233
+ 0,
1234
+ 0,
1235
+ 0,
1236
+ 0
1237
+ ],
1238
+ [
1239
+ 0,
1240
+ 0,
1241
+ 0,
1242
+ 0,
1243
+ 1,
1244
+ 1,
1245
+ 1,
1246
+ 1,
1247
+ 0,
1248
+ 0,
1249
+ 0,
1250
+ 0
1251
+ ],
1252
+ [
1253
+ 0,
1254
+ 0,
1255
+ 0,
1256
+ 0,
1257
+ 1,
1258
+ 1,
1259
+ 1,
1260
+ 1,
1261
+ 0,
1262
+ 0,
1263
+ 0,
1264
+ 0
1265
+ ],
1266
+ [
1267
+ 0,
1268
+ 0,
1269
+ 0,
1270
+ 0,
1271
+ 8,
1272
+ 8,
1273
+ 8,
1274
+ 8,
1275
+ 7,
1276
+ 7,
1277
+ 7,
1278
+ 7
1279
+ ],
1280
+ [
1281
+ 0,
1282
+ 0,
1283
+ 0,
1284
+ 0,
1285
+ 8,
1286
+ 8,
1287
+ 8,
1288
+ 8,
1289
+ 7,
1290
+ 7,
1291
+ 7,
1292
+ 7
1293
+ ],
1294
+ [
1295
+ 0,
1296
+ 0,
1297
+ 0,
1298
+ 0,
1299
+ 8,
1300
+ 8,
1301
+ 8,
1302
+ 8,
1303
+ 7,
1304
+ 7,
1305
+ 7,
1306
+ 7
1307
+ ],
1308
+ [
1309
+ 0,
1310
+ 0,
1311
+ 0,
1312
+ 0,
1313
+ 8,
1314
+ 8,
1315
+ 8,
1316
+ 8,
1317
+ 7,
1318
+ 7,
1319
+ 7,
1320
+ 7
1321
+ ],
1322
+ [
1323
+ 9,
1324
+ 9,
1325
+ 9,
1326
+ 9,
1327
+ 9,
1328
+ 9,
1329
+ 9,
1330
+ 9,
1331
+ 0,
1332
+ 0,
1333
+ 0,
1334
+ 0
1335
+ ],
1336
+ [
1337
+ 9,
1338
+ 9,
1339
+ 9,
1340
+ 9,
1341
+ 9,
1342
+ 9,
1343
+ 9,
1344
+ 9,
1345
+ 0,
1346
+ 0,
1347
+ 0,
1348
+ 0
1349
+ ],
1350
+ [
1351
+ 9,
1352
+ 9,
1353
+ 9,
1354
+ 9,
1355
+ 9,
1356
+ 9,
1357
+ 9,
1358
+ 9,
1359
+ 0,
1360
+ 0,
1361
+ 0,
1362
+ 0
1363
+ ],
1364
+ [
1365
+ 9,
1366
+ 9,
1367
+ 9,
1368
+ 9,
1369
+ 9,
1370
+ 9,
1371
+ 9,
1372
+ 9,
1373
+ 0,
1374
+ 0,
1375
+ 0,
1376
+ 0
1377
+ ]
1378
+ ]
1379
+ ]
1380
+ },
1381
+ "b94a9452": {
1382
+ "solve": "def solve_b94a9452(grid):\n \"\"\"Rectangle with border and inner colors. Extract and swap them.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n\n rect_cells = []\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0:\n rect_cells.append((r, c))\n\n min_r = min(r for r, c in rect_cells)\n max_r = max(r for r, c in rect_cells)\n min_c = min(c for r, c in rect_cells)\n max_c = max(c for r, c in rect_cells)\n\n h = max_r - min_r + 1\n w = max_c - min_c + 1\n\n rect = []\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 rect.append(row)\n\n border_color = rect[0][0]\n inner_color = None\n for r in range(h):\n for c in range(w):\n if rect[r][c] != border_color:\n inner_color = rect[r][c]\n break\n if inner_color:\n break\n\n out = []\n for r in range(h):\n row = []\n for c in range(w):\n if rect[r][c] == border_color:\n row.append(inner_color)\n else:\n row.append(border_color)\n out.append(row)\n\n return out\n",
1383
+ "test_output": [
1384
+ [
1385
+ [
1386
+ 8,
1387
+ 8,
1388
+ 8,
1389
+ 8,
1390
+ 8,
1391
+ 8
1392
+ ],
1393
+ [
1394
+ 8,
1395
+ 8,
1396
+ 8,
1397
+ 8,
1398
+ 8,
1399
+ 8
1400
+ ],
1401
+ [
1402
+ 8,
1403
+ 8,
1404
+ 3,
1405
+ 3,
1406
+ 8,
1407
+ 8
1408
+ ],
1409
+ [
1410
+ 8,
1411
+ 8,
1412
+ 3,
1413
+ 3,
1414
+ 8,
1415
+ 8
1416
+ ],
1417
+ [
1418
+ 8,
1419
+ 8,
1420
+ 8,
1421
+ 8,
1422
+ 8,
1423
+ 8
1424
+ ],
1425
+ [
1426
+ 8,
1427
+ 8,
1428
+ 8,
1429
+ 8,
1430
+ 8,
1431
+ 8
1432
+ ]
1433
+ ]
1434
+ ]
1435
+ },
1436
+ "b9b7f026": {
1437
+ "solve": "def solve_b9b7f026(grid):\n \"\"\"Multiple filled rectangles. One has holes (0s inside). Output its color.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n\n visited = [[False]*cols for _ in range(rows)]\n\n def flood_fill(r, c, color):\n stack = [(r, c)]\n cells = []\n while stack:\n cr, cc = stack.pop()\n if cr < 0 or cr >= rows or cc < 0 or cc >= cols:\n continue\n if visited[cr][cc] or grid[cr][cc] != color:\n continue\n visited[cr][cc] = True\n cells.append((cr, cc))\n for dr, dc in [(-1,0),(1,0),(0,-1),(0,1)]:\n stack.append((cr+dr, cc+dc))\n return cells\n\n for r in range(rows):\n for c in range(cols):\n if grid[r][c] != 0 and not visited[r][c]:\n color = grid[r][c]\n cells = flood_fill(r, c, color)\n\n min_r2 = min(cr for cr, cc in cells)\n max_r2 = max(cr for cr, cc in cells)\n min_c2 = min(cc for cr, cc in cells)\n max_c2 = max(cc for cr, cc in cells)\n\n expected_area = (max_r2 - min_r2 + 1) * (max_c2 - min_c2 + 1)\n actual_area = len(cells)\n\n if actual_area < expected_area:\n return [[color]]\n\n return [[0]]\n",
1438
+ "test_output": [
1439
+ [
1440
+ [
1441
+ 7
1442
+ ]
1443
+ ]
1444
+ ]
1445
+ },
1446
+ "ba26e723": {
1447
+ "solve": "def solve_ba26e723(grid):\n \"\"\"3-row pattern. Replace 4 with 6 at columns that are multiples of 3.\"\"\"\n rows = len(grid)\n cols = len(grid[0])\n out = [row[:] for row in grid]\n\n for r in range(rows):\n for c in range(cols):\n if out[r][c] == 4 and c % 3 == 0:\n out[r][c] = 6\n\n return out\n",
1448
+ "test_output": [
1449
+ [
1450
+ [
1451
+ 0,
1452
+ 4,
1453
+ 0,
1454
+ 6,
1455
+ 0,
1456
+ 4,
1457
+ 0,
1458
+ 4,
1459
+ 0,
1460
+ 6,
1461
+ 0,
1462
+ 4,
1463
+ 0,
1464
+ 4,
1465
+ 0,
1466
+ 6,
1467
+ 0
1468
+ ],
1469
+ [
1470
+ 6,
1471
+ 4,
1472
+ 4,
1473
+ 6,
1474
+ 4,
1475
+ 4,
1476
+ 6,
1477
+ 4,
1478
+ 4,
1479
+ 6,
1480
+ 4,
1481
+ 4,
1482
+ 6,
1483
+ 4,
1484
+ 4,
1485
+ 6,
1486
+ 4
1487
+ ],
1488
+ [
1489
+ 6,
1490
+ 0,
1491
+ 4,
1492
+ 0,
1493
+ 4,
1494
+ 0,
1495
+ 6,
1496
+ 0,
1497
+ 4,
1498
+ 0,
1499
+ 4,
1500
+ 0,
1501
+ 6,
1502
+ 0,
1503
+ 4,
1504
+ 0,
1505
+ 4
1506
+ ]
1507
+ ]
1508
+ ]
1509
+ }
1510
+ }