CHICAGO - 106 miles to Chicago


In the movie "Blues Brothers", the orphanage where Elwood and Jake were raised may be sold to the Board of Education if they do not pay 5000 dollars in taxes at the Cook County Assessor's Office in Chicago. After playing a gig in the Palace Hotel ballroom to earn these 5000 dollars, they have to find a way to Chicago. However, this is not so easy as it sounds, since they are chased by the Police, a country band and a group of Nazis. Moreover, it is 106 miles to Chicago, it is dark and they are wearing sunglasses.

As they are on a mission from God, you should help them find the safest way to Chicago. In this problem, the safest way is considered to be the route which maximises the probability that they are not caught.

Input Specification

The input file contains several test cases. Each test case starts with two integers n and m (2 ≤ n ≤ 100, 1 ≤ m ≤ n*(n-1)/2). n is the number of intersections, m is the number of streets to be considered.

The next m lines contain the description of the streets. Each street is described by a line containing 3 integers a, b and p (1 ≤ a, b ≤ n , a ≠ b, 1 ≤ p ≤ 100): a and b are the two end points of the street and p is the probability in percent that the Blues Brothers will manage to use this street without being caught. Each street can be used in both directions. You may assume that there is at most one street between two end points.

The last test case is followed by a zero.

Output Specification

For each test case, calculate the probability of the safest path from intersection 1 (the Palace Hotel) to intersection n (the Honorable Richard J. Daley Plaza in Chicago). You can assume that there is at least one path between intersection 1 and n.

Print the probability as a percentage with exactly 6 digits after the decimal point. The percentage value is considered correct if it differs by at most 10-6 from the judge output. Adhere to the format shown below and print one line for each test case.

Sample Input

5 7
5 2 100
3 5 80
2 3 70
2 1 50
3 4 90
4 1 85
3 1 70
0

Sample Output

61.200000 percent

The safest path for the sample input is 1 → 4 → 3 → 5


hide comments
karan_yadav: 2018-07-26 21:15:50

Modified Dijkstra is what you need

ameyanator: 2018-03-30 13:03:03

Nice problem. Implemented using the Floyd's warshall algorithm. At first I thought that we might need to take care of the errors begin multiplied but my code gives an AC without the need to handle such errors :)

carofe82: 2018-03-16 15:41:29

@vivace,
It is not really a longest path problem. You are not trying to maximize the number of vertices in your path, you are just trying not to get caught!

Last edit: 2018-03-16 15:42:44
aniket000: 2018-01-30 19:45:42

i had a hard time getting the output thingy correct, here are a few tips;
1) include the following in your code //c++
#include <iomanip>
cout << fixed << setprecision(6);
2) make sure you are storing values in between as double
3) its just a variant of dijkstra, hint: think of using a max heap - priority_queue implementation.

imperfectboy: 2017-10-30 14:41:35

use double !!!

smso: 2017-08-03 13:58:36

got SIGSEGV but c++ program run ok on local computer (submit id=19908964) , this is the culprit: getline(cin, line); if (line == "0") break;

Last edit: 2017-08-03 18:01:42
code_aim: 2017-06-07 21:09:42

Direct implementation of Floyd's warshall algorithm.
Take care of OUTPUT format!!

vivace: 2017-06-02 20:45:04

People who are using dijkstra for this, how are u finding longest path?

cake_is_a_lie: 2017-03-02 04:24:17

ffp ftw

tni_mdixit: 2017-01-23 20:43:42

Easy one... AC in one go ! Almost inverse of Djikstra for shortest path !
:D


Added by:Adrian Kuegel
Date:2005-06-24
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: PERL6
Resource:University of Ulm Local Contest 2005