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
JP: 2017-02-06 14:08:23

My 100th! :-)

aspro: 2016-05-16 07:01:50

TLE with recursion(DFS)...solved with DP(knapsack)...
but still cant figure the approach with dijkstra :( can someone pl help....(aman191194@gmail.com)
got it......thanx narutorocks

Last edit: 2016-06-23 12:52:07
:.Mohib.:: 2015-11-08 09:20:09

Finally AC :)

theweblover007: 2015-11-02 18:02:00

Dont know i am getting WA when i get right answer for all the test cases.

Naman Goyal: 2015-05-19 23:56:00

The problem setters should put all the constraints like limit of risk integer? It becomes easier to select datatypes and other constraints in the code.

||N0VICE||: 2015-01-02 10:32:07

AC after many WAs :)

OTAKU: 2014-12-28 16:40:00

finally recursion helps me ... :)

AlcatraZ: 2014-08-19 22:11:05

Finding time was little tricky.. Nice question.. AC with DP.. Dijkstra WA

Cosmos: 2014-06-24 08:28:49

recursion with not so much of DP...

Himank Agrawal: 2014-05-19 21:04:57

what is max value of t(test cases) ?

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