Informática Avançado – Semana 49

por

Viagem do Flúcio

Existem vários algoritmos conhecidos para encontrar o menor caminho de um local para o outro. Temos GPS em nossos carros e em nossos celulares para nos mostrar o caminho mais rápido para onde nós quisermos ir. Flúcio gosta de viajar lentamente pois gosta de apreciar a estrada enquanto come um delicioso pão. Ajude Flúcio à encontrar o maior caminho entre a sua cidade e a de destino sem passar por uma cidade mais de uma vez.

Um caminho consiste em uma sequência de cidades distintas $$c_1,c_2,\cdots,c_k$$, tais que existe uma rota de $$c_i$$ para $$c_{i+1}$$ para todo $$1 \leq i < k$$.

Entrada

A primeira linha da entrada contém dois inteiros $$n, m$$ $$(2 \leq n \leq 18; 1 \leq m \leq n^2 – n)$$ o número de cidades e o número de estradas conectando as cidades. Existe no máximo uma estrada entre qualquer par de cidades. As cidades são numeradas de $$0$$ à $$n – 1$$, sendo $$0$$ a cidade de Flúcio e $$n – 1$$ a cidade de destino.

As próximas $$m$$ linhas contém cada uma três inteiros $$s, d, l$$ indicando uma estrada entre as cidades $$s$$ e $$d$$ de tamanho $$l$$ km$$ (0\leq s \leq n – 1;0\leq d\leq n – 1; s \neq d; 1\leq l \leq 10 000)$$. Cada estrada possuí mão dupla. Sempre existe um caminho de $$0$$ à $$n – 1$$.

Saída

Seu código deve imprimir um único inteiro, o tamanho do maior caminho que começa na cidade $$0$$, termina na cidade $$n – 1$$, e não visita qualquer cidade mais de uma vez. O tamanho do caminho é a soma dos tamanhos das estradas no caminho.

ENTRADA SAÍDA
3 3
0 2 5
0 1 4
1 2 3
7

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *