Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

QUASEMEN - Quase menor caminho

Achar um caminho que vai de um ponto inicial até um ponto de destino dados um conjunto de pontos e a extensão das rotas que os conectam é um problema já bem conhecido, e já até é parte de nosso dia-a-dia, uma vez que programas de caminho mínimo estão largamente distribuídos hoje em dia.

A maioria das pessoas normalmente gosta bastante dessas aplicações já que elas tornam suas vidas mais fáceis. Bem, talvez nem tão mais fáceis.

Agora que quase todo mundo tem acesso a aparelhos de GPS capazes de calcular os caminhos mais curtos a maioria das rotas que formam o caminho mais curto estão ficando lentas devido ao tráfego pesado. Como a maioria das pessoas tenta seguir o mesmo caminho, não vale mais a pena seguir essas direções.

Com isso em mente, seu chefe pediu a você que desenvolvesse uma nova aplicação à qual somente ele vai ter acesso, poupando tempo sempre que ele tiver uma reunião ou qualquer evento urgente. Ele pede a você que o programa não deve dizer o menor caminho, mas o quase menor caminho. Ele define o quase menor caminho como o menor caminho que vai de um ponto inicial até um um ponto de destino de forma que nenhuma rota entre dois pontos consecutivos pertence a qualquer caminho mínimo entre o ponto de partida e o de destino.

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.

Entrada

A entrada contém vários casos de teste. A primeira linha de um caso de teste contém dois inteiros N (2 <= N <= 500) e M (1 <= M <= 10^4), separados por um espaço, indicando, respectivamente, o número de pontos no mapa e o número de rotas de mão única conectando dois pontos diretamente. Cada ponto é identificado por um único inteiro entre 0 e N - 1. A segunda linha contém dois inteiros S e D, separados por um único espaço, indicando, respectivamente, os pontos de partida e de destino (S != D; 0 <= S, D < N). Cada uma das M linhas seguintes contém três inteiros U, V e P (U != V; 0 <= U, V < N; 1 <= P <= 10^3), separados por espaço, indicando a existência de uma rota de U para V com distância P. Existe no máximo uma rota de um ponto U até um ponto V, mas perceba que a existência de uma rota de U para V não implica a existência de uma rota de V para U e, se tal estrada existir, ela pode ter extensão diferente. O fim da entrada é indicado por uma linha contendo apenas dois inteiros separados por um espaço

Saída

Para cada caso de teste na entrada, seu programa deve imprimir uma única linha, contendo -1 se não for possível cumprir os requisistos ou um inteiro representando a extensão do quase menor caminho encontrado.


Exemplo de entrada 7 9 0 6 0 1 1 0 2 1 0 3 2 0 4 3 1 5 2 2 6 4 3 6 2 4 6 4 5 6 1 4 6 0 2 0 1 1 1 2 1 1 3 1 3 2 1 2 0 3 3 0 2 6 8 0 1 0 1 1 0 2 2 0 3 3 2 5 3 3 4 2 4 1 1 5 1 1 3 0 1 0 0

Saída para o exemplo de entrada 5 -1 6


Adicionado por:Wanderley Guimarăes
Data:2009-01-18
Tempo limite:1.200s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO PERL6 PY_NBC SCALA TCL
Origem:Final Sul-Americana da Maratona de Programação da ACM 2008

hide comments
2016-10-08 22:09:11
Recebi ACCEPTED, mas meu programa não passa nesse caso de teste:
12 19
0 5
0 1 1
0 11 1
0 8 1
0 10 1
0 7 4
1 3 1
2 5 1
3 4 1
3 6 1
3 9 1
4 5 1
6 5 1
7 6 2
7 5 5
8 9 2
9 5 1
9 2 1
10 3 2
11 3 2
0 0

A resposta deve ser 9.

Last edit: 2016-10-08 22:41:36
2010-09-21 01:01:38 Natan Lima[IME-USP]
O fim da entrada é composta por dois ZEROS separados por espaço năo?

Last edit: 2010-09-21 01:02:08
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.