Rede de telecomunicações

Esse problema é uma aplicação direta do algoritmo apresentado em: http://bit.ly/grapharticulation

Alguns pontos que são necessários prestar atenção:

- Lembre-se que ao adicionar uma aresta, como é um grafo bidirecional, a aresta deve ser adicionada na outra ponta da sua lista de adjacências. Por exemplo, se houver uma entrada:

1 5

Significa que você deve criar uma aresta de 1 para 5 e também de 5 para 1.

- Lembre do caso especial, quando é root. Ele vai ser root sempre quando você chamar na main(). Por exemplo, na minha main() tem:

for (int u=0; u< places; ++u)

{

if (color[u]==WHITE)

{

dfs(u);

}

}

Logo, se ele entrar no dfs, o valor de u será o root daquela invocação.

Exemplo de grafo para você testar:

exemplo de grafo para testes