FPOLICE - Fool the Police
Dhamaka Singh (a crook) has just robbed a bank and would like to get out of the country as soon as possible. But there is a slight problem, the police! On his way out of the country he has to pass through some police stations. Each police station has a certain risk (for Dhamaka Singh) associated with it. He wants to get to the airport within a certain time T or else he'll miss his flight. He also wants to take a path that minimizes the total risk associated with it. Help Dhamaka Singh get out of the country.
The first line of the input contains an integer t, the number of test cases. t test cases follow.
The first line of each test case contains 2 integers N (3 <= N <= 100) and T (1 <= T <= 250), denoting the number of police stations and the total time he has to reach the airport, respectively.
Dhamaka Singh has to start from the first police station and reach the Nth one (the airport is just after the Nth police station). You can consider the time taken between the Nth police station and the airport to be negligible.
Next there are N lines with N numbers in each line, separated by single spaces. All numbers are separated by a single space. The jth integer in the ith line represents the time taken to reach the jth police station from the ith police station.
Next there are another N lines with N numbers in each line. All numbers are separated by a single space. The jth integer in the ith line represents the risk involved in travelling to the jth police station from the ith police station.
For each test case output one line containing 2 integers separated by a single space.
The first integer denotes the minimum total risk to reach the airport. The second integer denotes the minimum time required to reach the airport at the minimum total risk.
If it is impossible to reach the airport within time T (inclusive), just print "-1" (quotes for clarity).
Input: 1 4 10 0 6 2 3 6 0 2 3 3 1 0 2 3 3 2 0 0 2 2 7 2 0 1 2 2 2 0 5 7 2 5 0 Output: 4 9
AC in first attempt with Dijkstra :)
nice dp :)
same as fisher.
after 8 WA i finally did it with Bellman-Ford...in 0.01 sec :)
can path be like 1->3->2->4 or it should be in increasing order ?
For those wondering how the output is 4 9 , the path is
please say how to optimise
hell yeah i did this with recursion.. my first recursion handling 2-D arrays :)
do not copy and paste from FISHER... many WA because of that :D!
Can anyone please tell me the complexity of the problem?