3 × 3 grid · 0 empty · 1 fresh · 2 rotten
2
1
1
1
1
0
0
1
1
queue · rotten frontier
front →
(empty)
← backMulti-source BFS by minute
▸1queue = all rotten cells // multi-source seed2fresh = count of 1s3minute = 04while queue not empty and fresh > 0:5 minute++6 for each cell in this minute’s batch:7 for each fresh neighbour:8 rot it, fresh--, enqueue it9 queue = newly rotted10return fresh == 0 ? minute : -1
state
- fresh6
- minute0