My first instinct was multi-source BFS starting from every robot simultaneously, which is the right move.
Model the factory floor as a graph where unblocked cells are nodes and adjacent unblocked cells are edges. The robots can collectively reach every unblocked cell if and only if all robots and all unblocked cells belong to the same connected component. Use BFS/DFS from any robot to check if all unblocked cells are visited.
Pro tip: Clarify edge cases upfront: what if there are no robots? What if there are no unblocked cells? Also, mention that if the grid is large, you can optimize by only exploring from one robot and counting visited cells against total unblocked cells.
Confirm that robots can move independently and that 'collectively reach' means every unblocked cell is reachable by at least one robot. Ask about grid size, robot count, and whether robots can occupy the same cell.
Treat each unblocked cell as a node, with edges between adjacent unblocked cells (up, down, left, right). The problem reduces to checking if all unblocked cells are in a single connected component that contains at least one robot.
Use BFS or DFS starting from any robot to explore the connected component. Count the number of unblocked cells visited and compare with the total number of unblocked cells.
If there are no robots, return true only if there are no unblocked cells. If there are unblocked cells but no robots, return false. Also consider disconnected components with no robots.
Time complexity is O(m*n) for BFS/DFS, space O(m*n) for visited set. Mention that you can avoid extra space by modifying the grid in-place if allowed.
AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.