| Mines HSPC 2025 Open Division |
|---|
| Finished |
Your friend X is a master of pranks and has been scheming his magnum opus prank: a prank so elaborate that it requires an entire team of accomplices. However, to maintain secrecy, X has imposed a strict condition:
This way, if one of them is caught, they cannot directly expose any of the others.
You have been tasked with analyzing all possible ways to recruit a group of accomplices while ensuring this condition is met. Specifically, X wants to know how many distinct ways there are to form such groups of different sizes.
You are given a set of $$$n$$$ candidates numbered $$$1$$$ through $$$n$$$, along with a list of friendships between them. Each friendship is bidirectional—if candidate $$$a$$$ is friends with candidate $$$b$$$, then candidate $$$b$$$ is also friends with candidate $$$a$$$.
Your job is to determine, for each possible group size from $$$0$$$ to $$$n$$$, the number of ways to form such a group while satisfying X's constraint.
The first line contains two integers $$$n$$$ and $$$m$$$ $$$(1 \leq n \leq 40$$$, $$$0 \leq m \leq \frac{n(n-1)}{2})$$$—the number of candidates and the number of friendships.
Each of the next $$$m$$$ lines contains two integers $$$a$$$ and $$$ b $$$ $$$(1 \leq a, b \leq n$$$, $$$ a \neq b)$$$, indicating that candidates $$$a$$$ and $$$b$$$ are friends. There are no duplicate friendships.
Print $$$n+1$$$ integers on a single line, where the $$$i$$$-th integer represents the number of ways to form a valid group of exactly $$$i-1$$$ accomplices.
5 3 1 2 2 3 4 5
1 5 7 2 0 0
| Name |
|---|


