Caixeiro Viajante

Paulo é um caixeiro viajante, que visita clientes nas cidades do reino da Nlogônia para demonstrar novos produtos da empresa para a qual trabalha.

Paulo está organizando uma viagem para visitar cada uma das NN cidades do reino. A Nlogônia é imensa, as cidades são distantes, de forma que Paulo vai sempre usar transporte aéreo para ir de uma cidade a outra. Paulo conhece o tempo de voo entre cada par de cidades, mas não gosta de viajar de avião e quer minimizar o tempo de voo total para a viagem. No entanto, Paulo tem uma demanda peculiar quanto à ordem das cidades que vai visitar.

Na Nlogônia os “nomes” das cidades são números inteiros de 11 a NN. Paulo deseja que a ordem das cidades que vai visitar obedeçam à seguinte regra: quando Paulo visitar a cidade KK, ou todas as cidades de nomes menores do que KK já foram visitadas ou todas serão visitadas após KK. Por exemplo, se NN é igual a três, Paulo pode visitar as cidades nas ordens 11, 22, 33 ou na ordem 33, 22, 11 ou na ordem 22, 11, 33, mas não pode visitá-las na ordem 11, 33, 22, pois quando visita a cidade 33, como 11 já foi visitada, 22 também deveria ter sido visitada.

Escreva um programa para determinar o tempo mínimo total de voo para a viagem de Paulo, iniciando em qualquer cidade, terminando em qualquer cidade, mas visitando cada cidade uma única vez.

Entrada

A primeira linha da entrada contém um inteiro NN, o número de cidades. Cada uma das N(N1)/2N(N - 1)/2 linhas contém três inteiros AA, BB e TT, indicando que o tempo de voo da cidade AA para a cidade BB é TT (o tempo de voo da cidade BB para a cidade AA também é TT).

Saída

Seu programa deve produzir uma única linha, contendo um único número inteiro, o tempo mínimo total de voo para a viagem de Paulo.

Restrições

Informações sobre a pontuação

Exemplo de Entrada 1

3
1 2 5
1 3 2
2 3 4

Exemplo de Saída 1

7

Exemplo de Entrada 2

4
1 2 15
1 3 7
1 4 8
2 3 16
2 4 9
3 4 12

Exemplo de Saída 2

31