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).


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

4 9

hide comments
karankamboj: 2019-02-10 12:32:41

Wrong with Dijkastra :(

nobel_ruet: 2018-10-03 17:29:04

Time cannot be negative

sherlock11: 2018-05-31 09:36:38

by dfs i think the "comment" tries to say about backtracking............instead solve it with dp......

babur: 2017-09-01 16:39:17

SImple Dfs works...

sultania23: 2017-07-01 19:00:30

why bfs fails but dfs passes?

Last edit: 2017-07-01 19:00:41
anurag44: 2017-06-27 22:08:49

Simple DFS !! Got AC

sas1905: 2017-06-26 20:33:15

Same ques fishmonger..

da_201501181: 2017-05-09 16:07:43

What a Knapsack...!! Must try..!

prateek: 2017-04-07 17:26:30

Similar to fishmoger problem.Be careful with "-1" case.

JP: 2017-02-06 14:08:23

My 100th! :-)

Added by:Matthew Reeder
Time limit:1.411s
Source limit:30000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:Al-Khawarizm 2006