Informática – Nível Avançado – Semana 34

por

??Terceiro Desafio: O Caminho do Chocolate??

Como dito no problema iniciante, o coelhinho da Páscoa passou uma série de desafios para Lumy resolver até ela conseguir chegar no grande prêmio: o melhor ovo de Páscoa do mundo. Depois de passar pelo primeiro e segundo desafios, Lumy terá agora que resolver o desafio final!

Agora finalmente Lumy poderá ir até o seu grande prêmio, mas ela terá que fazer isso de uma maneira um pouco diferente.

Dado $$N$$ pontos de interesse na cidade e $$M$$ rotas uni-direcionadas, em que a $$i-esima$$ rota liga do ponto $$A_i$$ para o $$B_i$$ e demora um tempo $$C_i$$ para ser a travessada. O ponto de interesse $$1$$ é a casa de Lumy e o ponto de interesse $$N$$ é onde o melhor ovo de Páscoa do mundo está localizado.

O problema é que Lumy não pode ir até seu prêmio pelo menor caminho, ela tem que percorrer o $$k-esimo$$ menor caminho da casa dela até o ovo de chocolate. O coelhinho disse que se ela não seguir um caminho que tenha o mesmo valor que o $$k-esimo$$ menor caminho, ele pegará o ovo e ela não ganhará nada. Mas além de passar pela $$k-esimo$$ menor caminho, ela tem que dizer o valor dos $$k$$ menores caminhos de $$1$$ até $$N$$.

Formalmente, dado um grafo com $$N$$ vértices e $$M$$ arestas direcionadas e com peso, retorne os valores dos $$k$$ menores caminhos de $$1$$ até $$N$$. Lembrando que uma mesma cidade pode ser visitada mais de uma vez, dois caminho são considerados diferentes se o $$i-esimo$$ vértice passado pelo primeiro caminho é diferente do segundo para algum $$i$$, e caminhos diferentes com o mesmo tempo devem ser contabilizados diferentemente. (leia o enunciado original no final da página para mais detalhes).

Entrada:

A primeira linha tem 3 inteiros $$N,M,K$$, que representam a quantidade de pontos de interesse, a quantidade de arestas e quantas menores rotas você tem que retornar.

As próximas $$M$$ linhas contém 3 inteiros cada, $$A_i,B_i,C_i$$, que representam o ponto inicial, final e o tempo da $$i-esima$$ rota.

Saída:

Imprima $$K$$ inteiros: a duração dos $$K$$ menores caminhos de $$1$$ até $$N$$, em ordem crescente.

Limites:

  • $$1\leq N\leq 10^5$$
  • $$1\leq M\leq 2*10^5$$
  • $$1\leq A_i,B_i\leq N$$
  • $$1\leq C_i\leq 10^9$$
  • $$1 \leq K \leq 10$$

Exemplo:

Entrada Saída
4 6 3
1 2 1
1 3 3
2 3 2
2 4 6
3 2 8
3 4 1
4 4 7

Explicação: As menores rotas são $$1 \rightarrow 3 \rightarrow 4$$ (preço $$4), $$1 \rightarrow 2 \rightarrow 3 \rightarrow 4$$ (preço $$4$$) e $$1\rightarrow 2 \rightarrow 4$$ (preço $$7$$).

Para submeter sua solução, use esse link.