


"""simple docstring"""


from ..utils import DummyObject, requires_backends



class   _a      (      metaclass=SCREAMING_SNAKE_CASE_ ):
    a_    :				List[Any]             =    ['transformers', 'torch', 'note_seq']
    def __init__( self							:					List[Any]							,					*SCREAMING_SNAKE_CASE__							:					Tuple							,					**SCREAMING_SNAKE_CASE__							:					List[Any]				):
          requires_backends(self							,					['transformers', 'torch', 'note_seq']				)
    @classmethod
    def      _UpperCamelCase       ( cls							:					str							,					*SCREAMING_SNAKE_CASE__							:					Union[str, Any]							,					**SCREAMING_SNAKE_CASE__							:					Tuple				):
          requires_backends(cls							,					['transformers', 'torch', 'note_seq']				)


    @classmethod
    def      _UpperCamelCase       ( cls							:					Optional[int]							,					*SCREAMING_SNAKE_CASE__							:					int							,					**SCREAMING_SNAKE_CASE__							:					int				):
          requires_backends(cls							,					['transformers', 'torch', 'note_seq']				)







"""simple docstring"""


# A Bipartite Graph is a graph whose vertices can be divided into two independent sets,
# U and V such that every edge (u, v) either connects a vertex from U to V or a vertex
# from V to U. In other words, for every edge (u, v), either u belongs to U and v to V,
# or u belongs to V and v to U. We can also say that there is no edge that connects
# vertices of same set.



def   snake_case						(				_a:     Optional[Any]							)->		Union[str, Any]:
      '''simple docstring'''


      lowerCamelCase__           =		[False] * len(_a							)
      lowerCamelCase__           =		[-1] * len(_a							)

      def dfs(_a:     Any		,   _a:     Optional[int]							):
            lowerCamelCase__           =		True
            lowerCamelCase__           =		c
            for u in graph[v]:
                  if not visited[u]:
                        dfs(_a		,   1 - c							)

      for i in range(len(_a							)							):
            if not visited[i]:
                  dfs(_a		,   0							)

      for i in range(len(_a							)							):
            for j in graph[i]:
                  if color[i] == color[j]:
                        return False

      return True


# Adjacency list of graph
_snake_case          =							{0: [1, 3], 1: [0, 2], 2: [1, 3], 3: [0, 2], 4: []}






print(check_bipartite_dfs(graph))



