SHPATH - The Shortest Path

You are given a list of cities. Each direct connection between two cities has its transportation cost (an integer bigger than 0). The goal is to find the paths of minimum cost between pairs of cities. Assume that the cost of each path (which is the sum of costs of all direct connections belongning to this path) is at most 200000. The name of a city is a string containing characters a,...,z and is at most 10 characters long.



s [the number of tests <= 10]
n [the number of cities <= 10000]
NAME [city name]
p [the number of neighbours of city NAME]
nr cost [nr - index of a city connected to NAME (the index of the first city is 1)]
           [cost - the transportation cost]
r [the number of paths to find <= 100]
NAME1 NAME2 [NAME1 - source, NAME2 - destination]
[empty line separating the tests]




cost [the minimum transportation cost from city NAME1 to city NAME2 (one per line)]




2 1
3 3
1 1
3 1
4 4
1 3
2 1
4 1
2 4
3 1
gdansk warszawa
bydgoszcz warszawa



Warning: large Input/Output data, be careful with certain languages

hide comments
anirudnits: 2018-01-31 19:36:10

@kmkhan_014 thanks :)

Shivam Gupta: 2017-12-20 22:03:26

For those using dijkstra, another optimization that nobody seems to have mentioned is that instead of running dijkstra for each source-dest pair, store all the queries and run dijkstra only once from each source vertex till all the dest. are found

tzolkat: 2017-11-14 03:00:45

I need a bigger file to test with.

jha_gaurav98: 2017-11-11 04:18:20

Don't perform the complete soon as you remove the destination vertex from the heap just stop

Adrian Motulewicz: 2017-11-01 01:54:58

When I know that key node is satisfied? When can I break out of the Dijkstra? I wrote my code in java and I have problem with time :-(

Last edit: 2017-11-01 01:56:53
bani_raheja: 2017-10-28 22:07:59

ac in one go!
Just take care that you don't traverse the whole graph. As soon as the shortest distance of the key node is satisfied, break out of the Dijkstra algorithm and print the result

kmkhan_014: 2017-10-25 19:41:35

The edges are all directed. if assumed undirected the judge may throw TLE

tusharuppal: 2017-10-02 14:48:01

AC in one go..
use map
fast I/O..

parthendo: 2017-09-19 16:46:52

AC in one go :)

KD : 2017-08-31 20:01:27

easy one :P

Added by:Darek Dereniowski
Time limit:1.5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Resource:DASM Programming League 2003 (problemset 11)