CodeChef: Codechef
Site under maintenance
  • Register
  • Forgot Password?
  • PRACTICE
    • Easy
    • Medium
    • Hard
  • COMPETE
    • August Mini Challenge
    • August Algorithm Challenge
    • July Algorithm Challenge
    • June Algorithm Challenge
    • May Gamers Challenge
  • DISCUSS
    • Forums
    • Blog
    • Twitter
  • COMMUNITY
    • CodeChef TechTalks
    • CodeChef Meetups
    • Campus Chapters
    • Host Your Contest
    • User Groups
  • HELP
    • Frequently Asked Questions
    • FAQ for Problem Setters
    • Tutorial: Paying Up
    • Tutorial: Small Factorials
    • Tutorial: Input and Output(I/O)
    • Tutorial: Your First Non-Trivial Problem
  • ABOUT
    • About CodeChef
    • About Directi
    • CEO's Corner
    • Press Room
    • Careers

Home » Problems (easy) » Nikhils Dungeon

Nikhils Dungeon

Problem code: NDUNGEON

  • Submit
  • All submissions

All submissions for this problem are available.

Nikhil has designed the following game. The game is played in a set of rooms in a dungeon, arranged in an M × N rectangular grid. In one of the rooms, the evil wazir has imprisoned the princess. The noble prince is on his way to rescue the princess.

The prince starts in the room at the top left corner of the grid, which is labelled (1,1). Each room contains some guards. It takes a certain amount of time before the prince can kill all the guards in the room he is in. The time taken to kill the guards varies from room to room. Once he has killed all the guards in a room, he can move on to any one of its neighbours by going left, right, up or down, provided, of course, that there is a neighbouring room in the corresponding direction.

The wazir, knowing that the prince is on his way, has set a time bomb that will kill the princess after T seconds. You will be given the position of the princess, the time left for the bomb to go off and the time it takes for the prince to kill the guards in each of the rooms in the dungeon. Your task is to determine if it is possible for the prince to reach the princess and save her by defusing the bomb before the T seconds expire.

For example, suppose the dungeon is described by the following grid of numbers.

2 3 2
2 5 1
5 3 1
3 1 1

The number at position (i,j) indicates the time taken for the prince to overpower the guards in room (i,j). Suppose the princess is in the room at position (4,2). If T = 10. there is no way the prince can reach the princess in time. However, if T = 15, the prince can reach the princess with 4 seconds to spare, as follows. Starting from (1,1), he moves right to (1,2) and then (1,3), comes down all the way to (4,3) and then moves (4,2). This takes 11 seconds (note that he must also overpower the guard in the room where the princess is incarcerated). You can check that he cannot reach the princess with more than 4 seconds to spare by any route.

Input

The first line contains two integers M and N indicating the number of rows and columns in the rectangular dungeon. Lines 2,3,…,M+1 contain N positive integers. The jth integer on line i+1 is the time taken to overpower the guards at room (i,j). The last line in the input, line M+2, contains three integers a, b and T, where (a,b) is the position of the cell where the princess is held and T is the amount of time before the bomb goes off.

Output

If it is not possible for the prince to save the princess then print a single line with the answer NO. Otherwise, print two lines. The first line should say YES. The second line should contain a single integer indicating the maximum possible time to spare when the prince rescues the princess.

Constraints

You may assume that 1 ≤ N,M ≤ 70.

Example

Input:
4 3 
2 3 2
2 5 1
5 3 1
3 1 1
4 2 15

Output:
YES
4


Date:2009-07-28
Time limit:1s
Source limit:50000B
Languages:All except: TCL ERL
Resource:IARCS


  • Submit

Comments

Loading Comments...

SUCCESSFUL SUBMISSIONS FOR THIS PROBLEM:

Loading Submissions...

RECENT ACTIVITY FOR THIS PROBLEM:

Loading Recent Activity...

HELP

Program should read from standard input and write to standard output.

After you submit a solution you can see your results by clicking on the [My Submissions] tab on the problem page. Below are the possible results:

  • Accepted Your program ran successfully and gave a correct answer. If there is a score for the problem, this will be displayed in parenthesis next to the checkmark.
  • Time Limit Exceeded Your program was compiled successfully, but it didn't stop before time limit. Try optimizing your approach.
  • Wrong Answer Your program compiled and ran succesfully but the output did not match the expected output.
  • Runtime Error Your code compiled and ran but encountered an error. The most common reasons are using too much memory or dividing by zero. For the specific error codes see the help section.
  • Compilation Error Your code was unable to compile. When you see this icon, click on it for more information.

If you are still having problems, see a sample solution here.

  • About CodeChef
  • About Directi
  • CEO's Corner
  • Careers
  • feedback@codechef.com

© 2009 Directi Group. All Rights Reserved. CodeChef uses SPOJ © by Sphere Research Labs

Sponsors
The time now is: