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 oneman 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 bidirectional, 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<=n<=100,1<=b<=m<=10000). The next m lines contain three integers each, the ith being u_{i} v_{i} d_{i}, which means that cities u_{i} and v_{i} are connected by a road of length d_{i} (1<=u_{i},v_{i}<=100, 1<=d_{i}<= 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 jth being u_{j} v_{j} b_{j}, which signifies that b_{j} parcels should be transported (individually) from city u_{j} to city v_{j}. The sum of all b_{j} 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
venture_walk:
20171017 17:58:39
How do you solve it with memory as less as 3.1MB ?? 

adelmzian:
20170918 19:40:04
any body can explain to me the test case above ? Last edit: 20170918 19:40:26 

akt_1998:
20170622 12:34:26
FLOYD+DP+BITMASK+4 HOURS ;) 

and_roid:
20170614 21:20:11
Awesome Question with Awesome Concept!! 

Madcannibal:
20170306 14:03:02
How 1<=b<=10000 ?! oO 

chinmay0906:
20161030 17:14:04
spoj toolkit for this problem is wrong 

johbuntu:
20160915 19:22:56
Am I missing something, or is this a multigraph problem? 

buttman:
20160806 18:12:54
Try CLEANRBT after this. 

theph0enix:
20160711 06:55:27
Please add an explanation for the example test case. Last edit: 20160711 06:55:55 

Liquid_Science:
20160310 11:56:40
Took me 2 hrs to solve this _ 
Added by:  adrian 
Date:  20040728 
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 