Can this problem be solved in poly time?
Input: $S_i \subset \{1,\cdots,n\}$ for $i=1,\cdots, n$.
Question: Is it possible to select an $a_i \in S_i$ for each $i=1,\cdots,n$, such that $\{a_1,\cdots,a_n\}=\{1,\cdots,n\}$?
Informally, the problem asks for selecting one element from each subset $S_i$ such that the selected elements cover the set $\{1, \cdots, n\}$.