Adicionei 3 funcoes de solucao inicia: a primeira eh aquela mesma ainda, a segunda nao cheguei a implementar toda pq achei que nao ia ser muito diferente em tempo de exeução da primeira e a terceira eh aquela tosca que considera arestas infinitas