Nós adjacentes

Um grafo é um conjunto de nós acompanhado de um conjunto de arestas que conectam esses nós.

Exemplo de grafo

Os grafos podem ser direcionados ou não direcionados. Em um grafo direcionado, cada aresta tem uma direção, enquanto, em um grafo não direcionado, as arestas não têm direção. O grafo acima é um grafo não direcionado.

Dois nós de um grafo são adjacentes se houver uma aresta entre eles. No exemplo acima, os nós 0 e 1 são adjacentes, mas 0 e 2 não são.

Podemos representar grafos usando uma matriz de adjacência. A matriz de adjacência de um grafo com "n" nós é uma matriz "n * n", na qual a entrada da linha "i" e da coluna "j" é 0 se os nós "i" e "j" não forem adjacentes, e 1 se os nós "i" e "j" forem adjacentes.

No exemplo acima, a matriz de adjacência é assim:

{
  { 0, 1, 0, 0 },
  { 1, 0, 1, 1 },
  { 0, 1, 0, 1 },
  { 0, 1, 1, 0 }
}

Sua tarefa é determinar se dois nós são adjacentes em um grafo não direcionado, dados a matriz de adjacência e os dois nós.

Exemplos

Exemplo de grafo

Matriz de adjacência:

{
  { 0, 1, 0, 0 },
  { 1, 0, 1, 1 },
  { 0, 1, 0, 1 },
  { 0, 1, 1, 0 }
}
  • Para os nós 0,1, a função deve retornar true.
  • Para os nós 0,2, a função deve retornar false.

Exemplo de grafo 2

{
  { 0, 1, 0, 1, 1 },
  { 1, 0, 1, 0, 0 },
  { 0, 1, 0, 1, 0 },
  { 1, 0, 1, 0, 1 },
  { 1, 0, 0, 1, 0 }
}
  • Para os nós 0,3, a função deve retornar true.
  • Para os nós 1,4, a função deve retornar false.

Notas

  • Os grafos podem ter entre 0 e 25,000 nós.
  • Limite de tempo: 100 milissegundos.