Você está viajando pelo arquipélago de Kiri, que é composto por um grande número de ilhas. Não há pontes entre as ilhas, de modo que a única maneira de viajar entre as ilhas é por navio.
Há várias rotas de navios disponíveis. Cada rota conecta duas ilhas distintas e e pode ser usada nas duas direções (de para ou de para ). Cada rota tem um certo tempo de percurso (o mesmo nas duas direções) e um custo (o mesmo nas duas direções).
No momento você quer ir da ilha para outra ilha , mas quer gastar no máximo um certo valor com a viagem. Você também está com pressa e gostaria de chegar o mais rapidamente possível ao seu destino.
Dados a lista das rotas disponíveis, com seus custos e tempos de percurso, escreva um programa para determinar se é possível chegar ao destino gastando no máximo o valor previsto para a viagem, e nesse caso qual o menor tempo para chegar ao destino. Note que pode não ser possível chegar ao destino, seja porque não há rota disponível ou porque o valor alocado para a viagem não é suficiente.
Por exemplo, considere o caso mostrado na figura abaixo, em que você está na ilha 1 e quer ir para a ilha 4:
A primeira linha da entrada contém três inteiros , e , respectivamente o valor disponível para a viagem, o número de ilhas e o número de rotas. As ilhas são identificadas por inteiros de 1 a . Cada uma das linhas seguintes descreve uma rota e contém quatro inteiros , , e , onde e representam ilhas, o tempo de percurso e o custo de uma passagem para essa rota. A última linha da entrada contém dois inteiros e , o início e o destino da sua viagem.
Seu programa deve produzir uma única linha na saída, que deve conter um único inteiro, o menor tempo necessário para chegar ao destino, ou o valor caso não seja possível chegar ao destino.
10 4 7
1 2 4 4
1 3 7 2
3 1 8 1
3 2 2 2
4 2 1 6
3 4 1 1
1 4 6 12
1 4
5
3 3 3
1 2 5 2
3 2 8 2
1 3 1 4
1 3
-1