Usina
A Usina Nuclear Indiscutivelmente Campeã (Unicamp) é organizada em N salas numeradas de 1 a N.
Por questões de segurança, o reator fica no subsolo, na sala de número N, e é monitorado por um técnico.
No passado, a sala de controle ficava logo ao lado do reator, mas os engenheiros estavam desconfortáveis no subsolo
e queriam uma sala em um lugar alto, para corresponder à sua importância. Agora, a sala de comando fica em um dos andares mais altos
da torre mais alta da usina, na sala de número 1, e os engenheiros se comunicam com o técnico por um telefone, caso detectem algum problema. Além disso, a
administração da Unicamp faz o possível para deixar a empresa mais divertida, como é a tendência de grandes empresas atuais. Por isso,
foram instalados escorregadores entre algumas salas. Evidentemente, só é possível ir de escorregador para uma sala que fique em uma altitude menor.
Um grave problema no reator foi detectado pelos engenheiros, mas o técnico responsável pelo reator desligou o telefone para dormir e é só
questão de tempo até que o reator exploda. Os engenheiros decidiram então sair correndo, ou melhor, escorregando para tentar avisar o técnico. Além
dos engenheiros, existem diversas pessoas na empresa espalhadas pelas salas. Os engenheiros vão descer pelos escorregadores a uma velocidade
de 1 metro por segundo e vão gritar alertas o tempo todo. Dentro de uma mesma sala o som se propaga perfeitamente (e, podemos considerar, instantaneamente).
Nos escorregadores, o grito de uma pessoa pode ser ouvido a uma distância de K metros (considere, também, instantaneamente).
Note que o som pode se propagar por uma sequência de salas e escorregadores enquanto a soma total da distância nos escorregadores for menor ou igual a K metros).
No entanto, como os gerentes da Unicamp não gostam de ouvir o barulho operacional da usina, há um isolamento sonoro no prédio que só permite que
o som se propague de andares mais altos para andares mais baixos, e não na direção contrária. Qualquer pessoa que ouça outra
pessoa gritando vai perceber o perigo e também vai começar a instantaneamente a gritar e usar os escorregadores para avisar os outros.
Você vai receber uma descrição da usina, com o número de salas, a quantidade de escorregadores e a descrição de cada escorregador.
Além disso, vai receber o número de salas que contém pessoas, quais salas contém
pessoas e a distância na qual as pessoas conseguem ser ouvidas nos escorregadores. A crise estará resolvida
quando alguma pessoa chegar perto o suficiente do técnico para que ele ouça os gritos, acorde e desligue o reator. Sua tarefa é calcular
o menor tempo necessário para que alguma pessoa avise o técnico e previna o desastre, ou indicar que isso não é possível com os escorregadores disponíveis.
Entrada
A primeira linha da entrada contém quatro inteiros
N, M, C e K, respectivamente o número de salas, o número de escorregadores, o número de salas que contém pessoas e a distância na qual as pessoas conseguem ser ouvidas.
As salas são identificadas por números de 1 a N. Os engenheiros sempre partem
da sala de número 1 e o técnico sempre está na sala de número N.
A segunda linha contém
C inteiros, P_1, P_2, ... P_C, indicando os números das salas quem contém pessoas.
Cada uma das M linhas seguintes descreve um escorregador, e contém
três inteiros A, B e D, indicando que existe um escorregador da sala A (mais alta) para a sala B (mais baixa), de comprimento D metros.
Saída
Seu programa deve produzir uma única linha, contendo um único número inteiro,
o menor tempo possível, em segundos, para prevenir o acidente, ou -1 caso isso não seja possível.
Restrições
- Sempre há pessoas nas salas 1 e N
- 2 ≤ N ≤ 105
- 0 ≤ M ≤ 3 x 105
- 2 ≤ C ≤ 100
- 1 ≤ D ≤ 104
- 0 ≤ K ≤ 109
Informações sobre a pontuação
- Em um conjunto de casos de testes somando 30 pontos, C = 2.
Exemplos
Entrada
5 7 4 7
1 2 3 5
1 2 6
1 3 9
2 3 5
2 5 16
3 5 14
3 4 6
4 5 11
|
Saída
7
|
Entrada
4 4 3 3
1 3 4
1 2 1
1 2 3
3 2 3
3 4 3
|
Saída
-1
|
Entrada
4 3 2 5
4 1
1 2 1
4 3 3
2 4 3
|
Saída
0
|