Bruce plans to visit his beloved grandmother whom he has not seen in ages. The petrol price is high and the roads are dangerous, so he wants to travel the shortest possible distance. He also wants to know how much choice he has for the route, as he wants to visit his grandmother more often and being Bruce, he loves change.
Bruce wants to surprise his grandmother with a box of cookies every time he visits. Bruce does not know how to make real cookies (digital ones are easy, however!), so he will have to go past a cookie store along the way, possibly increasing the length of the shortest distance.
Task
Bruce will start off in his home town, numbered , and his grandmother lives in town . Given the distance between each pair of towns and the location of the cookie stores, your task is to determine the length of the shortest route and the number of routes having that length. All routes must visit a town with a cookie store. Bruce is only interested in the last six digits of the number of routes, i.e. the remainder after division by .
Input Specification
The first line contains a single integer , representing the number of towns (numbered to ). The next lines each contain space-separated integers. The integer on the line, , is the distance between town and town . Following this is a line containing a single integer , the number of cookie stores. The last line contains space-separated integers, each representing a town that has a cookie store.
Output Specification
Output two space-separated integers, the length of the shortest route, followed by the remainder when the number of routes having this length is divided by .
Constraints
- For of tests, .
- for all
- (i.e. distance from a town to itself is zero)
- (i.e. distance from town to town is the same as the distance from town to town )
Sample Input
5
0 2 2 1 1
2 0 1 2 1
2 1 0 2 1
1 2 2 0 2
1 1 1 2 0
2
2 4
Sample Output
3 4
Explanation
In the sample input there are towns, with Towns and containing cookie stores. Bruce, who lives in Town , wants to visit his grandmother in Town . There are four routes having a distance of :
- Bruce goes from Town (purchasing cookies at )
- Bruce goes from Town (purchasing cookies at )
- Bruce goes from Town (purchasing cookies at )
- Bruce goes from Town (purchasing cookies at )
Notice that travelling from Town directly has a distance of only . However, Bruce would then arrive at his grandmother's without any cookies!
Comments
If a shortest path traverses two city with a store each, this counts as a single route or two? i.e. is it a route identified also by which particular city we use for the store?
What do we output if it is impossible to satisfy the given conditions?
The input format implies that the graph is complete (therefore connected). Also, the lower bound on is 1, so there is always at least 1 cookie shop Bruce can visit. Thus, there will always be at least one path from town 1 to town that visits a cookie shop.
Wait if , the upper bound for is . This may mean that can't be .
pblpbl -- I just changed the minimum number of towns to be 2. Thank you for your comment!
Can paths visit more than one cookie store?
Yes.