Split people into two groups
Your task
You are given n people (0..n-1) and a list of dislike pairs [a, b] meaning a and b refuse to be in the same group. Determine whether everyone can be split into exactly two groups so that no disliking pair shares a group. Return true if possible, false otherwise. This is equivalent to testing whether the dislike graph is bipartite. The graph may be disconnected; duplicate dislike pairs may appear; no self-dislikes.
Examples
possible_two_groups(n: int, dislikes: list[list[int]]) -> boolExample 1
Input
possible_two_groups(4, [[0, 1], [0, 2], [1, 3], [2, 3]])Output
True