SPOJ Brasil

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.

SPOJ Problem Set (seletivas)

1749. Final Mundial de 2008

Problema: MINIMO

Preocupado com a atual situação de crise no transporte aéreo, o diretor regional do concurso do ICPC no Brasil já iniciou seus preparativos para fazer as reservas das passagens aéreas para as finais mundiais de Banff em 2008. O primeiro passo foi estudar a malha aérea disponível, em que cada vôo tem um certo preço e liga duas cidades (estamos, na verdade, chamando de vôo apenas um trecho non stop de um vôo comercial). O objetivo do diretor é fazer várias consultas nesta malha de vôos.

Em geral desejamos fazer vôos sem escalas, mas estes podem ser muito caros. Para contornar este fato o diretor deseja permitir algumas escalas possíveis. Assim, ele ordenou as várias cidades da malha em sua ordem de preferência para fazer escala. Ou seja, a cidade de índice 1 é a que ele prefere fazer escala, seguida pela cidade 2, e assim por diante.

As consultas que o diretor fará são, então do seguinte tipo. É dada a cidade de partida e de chegada e um número t de cidades em que o diretor permite que sejam feitas escalas. Seu programa deverá encontrar o custo de um vôo de custo mínimo entre as cidades que faça, no máximo, escalas nestas cidades. Por exemplo, se t=1 você deverá encontrar o custo de um vôo de custo mínimo entre as duas cidades que seja, ou non stop ou que faça uma escala na primeira cidade.

Entrada

A entrada é composta de diversas instâncias. A primeira linha de cada instância consiste em dois inteiros n (1 <= n <= 100) e m (1 <= m <= 100000), indicando o número de cidades e o número de escalas. Nas m linhas seguintes temos três inteiros u,v e w (1 <= u,v <= n e 0 <= w <= 100) indicando que existe uma escala que vai de u para v com custo w. Em seguida um inteiro c (1 <= c <= 10000) indicando o número de consultas, e nas c linhas seguintes temos três inteiros o,d e t (1 <= o,d <= n e 0 <= t <= n) onde o é a cidade de origem, d é a cidade de destino e t indica que as cidades 1,2,..,t podem ser usadas para escalas.

A entrada termina com final de arquivo.

Saída

Para cada instância, você deverá imprimir um identificador Instancia k, onde k é o número da instância atual. Para cada consulta, na ordem da entrada, você deve imprimir o custo mínimo ou -1 caso não exista caminho entre as duas cidades.

Após cada instância imprima uma linha em branco.

Exemplo

Entrada:
4 7
4 1 0
2 1 3
1 4 20
2 3 15
4 2 1
3 1 21
1 2 0
3
2 1 0
4 2 2
4 3 1
5 10
4 5 2
2 1 4
1 2 7
2 4 7
5 2 1
4 1 2
4 5 12
5 4 4
5 3 7
3 5 9
4
2 5 0
3 4 5
4 5 1
2 3 2

Saída:

Instancia 1
3
0
-1


Instancia 2
-1
13
2
-1

Adicionado por:Wanderley Guimarães
Data:2007-08-28
Tempo limite:1s
Tamanho do fonte:50000B
Linguagem permitida:Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL
Origem:Seletiva para Maratona de Programação do IME - 2007

hide comments
2011-09-07 06:59:40 Edgar Lavor
Interessante, tomei TLE usando cout, mas passou em 0.40 usando printf =]
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.