COURIER - The Courier
Byteland is a scarcely populated country, and residents of different cities seldom communicate with each other. There is no regular postal service and throughout most of the year a one-man courier establishment suffices to transport all freight. However, on Christmas Day there is somewhat more work for the courier than usual, and since he can only transport one parcel at a time on his bicycle, he finds himself riding back and forth among the cities of Byteland.
The courier needs to schedule a route which would allow him to leave his home city, perform the individual orders in arbitrary order (i.e. travel to the city of the sender and transport the parcel to the city of the recipient, carrying no more than one parcel at a time), and finally return home. All roads are bi-directional, but not all cities are connected by roads directly; some pairs of cities may be connected by more than one road. Knowing the lengths of all the roads and the errands to be performed, determine the length of the shortest possible cycling route for the courier.
Input
The input begins with the integer t, the number of test cases. Then t test cases follow.
Each test case begins with a line containing three integers: n m b, denoting the number of cities in Byteland, the number of roads, and the number of the courier's home city, respectively (1 <= b <= n <= 100, 1 <= m <= 10000). The next m lines contain three integers each, the i-th being ui vi di, which means that cities ui and vi are connected by a road of length di (1 <= ui, vi <= 100, 1 <= di <= 10000). The following line contains integer z - the number of transport requests the courier has received (1<=z<=5). After that, z lines with the description of the orders follow. Each consists of three integers, the j-th being uj vj bj, which signifies that bj parcels should be transported (individually) from city uj to city vj. The sum of all bj does not exceed 12.
Output
For each test case output a line with a single integer - the length of the shortest possible bicycle route for the courier.
Example
Sample input: 1 5 7 2 1 2 7 1 3 5 1 5 2 2 4 10 2 5 1 3 4 3 3 5 4 3 1 4 2 5 3 1 5 1 1 Sample output: 43
hide comments
akt_1998:
2017-06-22 12:34:26
FLOYD+DP+BITMASK+4 HOURS ;) |
|
and_roid:
2017-06-14 21:20:11
Awesome Question with Awesome Concept!! |
|
Madcannibal:
2017-03-06 14:03:02
How 1<=b<=10000 ?! oO |
|
chinmay0906:
2016-10-30 17:14:04
spoj toolkit for this problem is wrong |
|
johbuntu:
2016-09-15 19:22:56
Am I missing something, or is this a multigraph problem? |
|
buttman:
2016-08-06 18:12:54
Try CLEANRBT after this. |
|
theph0enix:
2016-07-11 06:55:27
Please add an explanation for the example test case. Last edit: 2016-07-11 06:55:55 |
|
Liquid_Science:
2016-03-10 11:56:40
Took me 2 hrs to solve this -_- |
|
sai krishna:
2016-02-29 12:24:44
Feeling relaxed after solving this problem :)
|
|
thuibr:
2016-01-06 17:32:14
Any good test cases out there for the original TSP? |
Added by: | adrian |
Date: | 2004-07-28 |
Time limit: | 7s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: NODEJS PERL6 VB.NET |
Resource: | based on a problem from the VII Polish Collegiate Team Programming Contest (AMPPZ), 2002 |