Skip to main content

Print Maze Paths With Jumps

1. You are given a number n and a number m representing number of rows and columns in a maze.

2. You are standing in the top-left corner and have to reach the bottom-right corner. 

3. In a single move you are allowed to jump 1 or more steps horizontally (as h1, h2, .. ), or 1 or more steps vertically (as v1, v2, ..) or 1 or more steps diagonally (as d1, d2, ..). 

4. Complete the body of printMazePath function - without changing signature - to print the list of all paths that can be used to move from top-left to bottom-right.

Use sample input and output to take idea about output.


Input Format

A number n

A number m

Output Format

Print paths (one path in each line) in order hinted by Sample output


Constraints

0 <= n <= 5

0 <= m <= 5

Sample Input

3

3

Sample Output

h1h1v1v1

h1h1v2

h1v1h1v1

h1v1v1h1

h1v1d1

h1v2h1

h1d1v1

h2v1v1

h2v2

v1h1h1v1

v1h1v1h1

v1h1d1

v1h2v1

v1v1h1h1

v1v1h2

v1d1h1

v2h1h1

v2h2

d1h1v1

d1v1h1

d1d1

d2


Solution:

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), m = sc.nextInt();
        printMazePaths(1,1,n,m,"");
    }

    // sr - source row
    // sc - source column
    // dr - destination row
    // dc - destination column
    public static void printMazePaths(int sr, int sc, int dr, int dc, String psf) {
        
        if(sr>dr || sc>dc)  return;
        if(sr==dr && sc==dc){
            System.out.println(psf);
            return;
        }
        
        for(int j=1;j<=dc-sc;j++)
            printMazePaths(sr,sc+j,dr,dc,psf+"h"+j);
        
        for(int i=1;i<=dr-sr;i++)
            printMazePaths(sr+i,sc,dr,dc,psf+"v"+i);
        
        for(int d=1;d<=(dr-sr) && d<=(dc-sc);d++){
            printMazePaths(sr+d,sc+d,dr,dc,psf+"d"+d);
        }
        
    }

}

Comments

Popular posts from this blog

NTA Declares JEE (Main)-2021 (February Session) NTA Scores for Paper 1 (B.E./B.Tech.) | JEE Mains 2021

The JEE (Main) Examination for B.E./B.Tech. was conducted by NTA from 24 to 26 February 2021. A total number of 6.52 lacs candidates were registered for Paper 1 (B.E. /B. Tech.) in this examination.  The Examination was conducted in 331 Cities [including 9 cities outside India in Colombo, Doha, Dubai, Kathmandu, Muscat, Riyadh, Sharjah, Singapore, and Kuwait] in 828 Centres.  A total number of 742 Observers, 261 City-Coordinators, 19 Regional Coordinators, 06 Special Coordinators & 02 National Coordinators were deployed at these centres to oversee the smooth and fair conduct of the examination.  The examination for Paper 1 (B.E. /B. Tech.) was conducted in a total of 6 shifts from 24 to 26 February 2021. The scores of Paper 1 (B.E./B.Tech.) are being declared today.   The Examination was conducted for the first time in 13 languages (English, Hindi, Gujarati along with Assamese, Bengali, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu, and Urdu).  T...

CSAB Special round for NITs, IIITs and CFTIS 2018

CSAB Special round for NITs, IIITs and CFTIS 2 018 After the  seat allotment of JoSAA 2018  is completed, CSAB will conduct a special round of counselling for NITs, IIITs and CFTIs through CSAB. The allotment will be open only for those candidates who have successfully completed their  JEE Main 2018   examination and secured valid scores. Exclusive:   JoSAA Counselling 2021, Documents Required... CSAB 2018 Special Round 1 Seat Allotment Result CSAB 2018 Special Round 1 Opening and Closing Rank Important Dates of CSAB Special round for NITs, IIITs and CFTIS 2018 S.No Events Important Dates (Tentative) 1 Registration and Choice Filling Fourth week of July 2018 2 Announcement of Seat Allotment Fourth week of July 2018 3 Reporting to Allotted Institutes First week of August 2018 click here to get full schedule... Eligibility Criteria of CSAB Special round ...

Print Permutations

 1. You are given a string str. 2. Complete the body of printPermutations function - without changing signature - to calculate and print all permutations of str. Use sample input and output to take idea about permutations. Note -> The online judge can't force you to write the function recursively but that is what the spirit of question is. Write recursive and not iterative logic. The purpose of the question is to aid learning recursion and not test you. Input Format A string str Output Format Permutations of str in order hinted by Sample output Constraints 0 <= str.length <= 7 Sample Input abc Sample Output abc acb bac bca cab cba Solution: import java.io.*; import java.util.*; public class Main {     public static void main(String[] args) throws Exception {         Scanner sc = new Scanner(System.in);         String str = sc.nextLine();         printPermutations(str,"");     }     pu...