Encontrar o menor caminho entre dois pontos em um mapa é um problema clássico. Mas, em alguns sistemas de navegação, todas as rotas que fazem parte de algum menor caminho podem ficar congestionadas. Nesse caso, queremos encontrar uma rota alternativa. O mapa é representado por um grafo direcionado e ponderado. Os vértices são pontos do mapa, e cada aresta direcionada representa uma rota de um ponto para outro com um certo comprimento. O quase menor caminho entre a origem $S$ e o destino $D$ é o menor caminho de $S$ até $D$ que não usa nenhuma aresta pertencente a qualquer menor caminho de $S$ até $D$ no grafo original. Sua tarefa é determinar o comprimento do quase menor caminho. Caso não exista nenhum caminho que satisfaça essa condição, a resposta deve ser $-1$. Por exemplo, suponha que a figura abaixo representa o mapa dado, com círculos representando localizações e linhas representando rotas diretas, de mão única com as distâncias indicadas. O ponto de partida está marcado como $S$ e o de destino está marcado como $D$. As linhas em negrito pertencem a um caminho mínimo (nesse caso existem dois caminhos mínimos, cada um com extensão \(4\)). Logo, o quase menor caminho seria o indicado com linhas pontilhadas (extensão \(5\)), já que nenhuma rota entre dois pontos consecutivos pertence a nenhum caminho mínimo. Note que poderia existir mais de uma resposta possível, por exemplo, se a rota com extensão \(3\) tivesse extensão \(1\). Bem como poderia inexistir uma resposta certa. \begin{figure}[h] \centering \includegraphics[width=0.3\textwidth]{image.png} \end{figure}