A prefeitura de uma cidade emite, ao taxistas, concessões de trabalho. Uma concessão consiste em uma rota que parte do ponto A ao ponto B (e também o caminho contrário, de B até A), sem passar por nenhum outro ponto previamente demarcado. Há uma concessão para cada uma das rotas possíveis entre os pontos da cidade, e um taxista não está autorizado a passar por uma rota da qual não possua a respectiva concessão.
Um taxista, que já trabalha na cidade, pretende ampliar sua participação profissional. Através de um levantamento informal, ele estimou o lucro diário, em reais, associado a cada concessão. De posse destes dados, ele deseja adquirir novas concessões de modo que possa transportar seus passageiros entre quaisquer dois pontos da cidade e que as rotas escolhidas para aquisição gerem o maior lucro diário possível. Ele deve, porém, manter as concessões que já possui.
Escreva um programa que determine quais rotas devem ser adquiridas de tal modo que o lucro diário seja o maior possível e que o número de aquisições seja mínima. Além disso, após as novas aquisições, o taxista deve ser capaz de transportar seus passageiros entre quaisquer dois pontos da cidade e as concessões já adquiridas devem ser mantidas.
A primeira linha da entrada contém o número () de pontos da cidade.
As linhas seguintes descrevem as concessões, por meio de 4 valores, separados por espaços em branco: o identificador inteiro () da concessão, os pontos de partida e chegada e () e o lucro diário () em reais, com duas casas decimais.
A próxima linha contém o número () de concessões que o taxista já possui.
A linha seguinte contém números inteiros (), separados por espaços em branco, que correspondem aos identificadores das concessões do taxista. Assuma que todas estas concessões são distintas.
Imprima, em uma linha, o lucro diário máximo possível ao taxista, no
formato apresentado no exemplo (antecedido por ‘R$’ e
usando a vírgula como separador). Na linha seguinte imprima a quantidade
de concessões que devem ser adquiridas. Na terceira linha imprima
identificadores de concessões distintos, separados por um espaço em
branco, que atendam as restrições apresentadas.
Caso exista mais de uma escolha de concessões possível que leve ao lucro diário máximo, imprima qualquer uma delas, em qualquer ordem.
4
1 1 2 1.32
2 1 3 4.75
3 1 4 0.89
4 2 3 3.33
5 2 4 5.96
6 3 4 2.72
1
3
R$ 11,60
2
2 5
Explicação do exemplo 1: o taxista já possui a concessão 3, que lhe rende R$ 0,89 por dia. Ao adquirir as concessões 2 e 5, seu lucro diário passa para R$ 4,75 + R$ 0,89 + R$ 5,96 = R$ 11,60. Além disso, ele consegue levar os passageiros de qualquer origem a qualquer destino, como visto abaixo:
Trecho Rota (sequência de concessões)
1 <-> 2 3 -> 5
1 <-> 3 2
1 <-> 4 3
2 <-> 3 5 -> 3 -> 2
2 <-> 4 5
3 <-> 4 2 -> 3
Veja que a aquisição da concessão 1, por exemplo, aumentaria o lucro diário, mas violaria a minimalidade do número de aquisições.
4
6 3 4 1.01
1 1 2 2.01
3 1 4 3.01
2 1 3 7.01
5 2 4 4.01
4 2 3 6.01
1
2
R$ 17,03
2
4 5
5
1 1 2 13.48
2 2 3 17.77
3 3 4 15.56
4 4 5 11.99
5 5 1 18.78
6 5 3 16.02
7 1 3 15.56
8 4 1 10.01
9 4 2 13.39
10 2 5 15.00
1
8
R$ 62,58
3
2 5 6