Header Ads Widget

Chef And Magical Path | codechef solution

 Problem :-

Read problems statements in Mandarin ChineseRussian and Vietnamese as well.

Chef is stuck in a two dimensional maze having N rows and M columns. He needs to get out of the maze as soon as possible and arrive at the kitchen in order to serve his hungry customers. But, he can get out of the maze only if he is able to successfully find any magical path in the given maze.

A path is defined as magical if it starts from any of the cell (a,b) of the maze and ends at the cell (c,d) such that the following conditions are satisfied :-

  • |a - c| + |b - d| = 1
  • All the cells in the maze are traversed exactly once.
  • It is allowed to move only in the four directions - up, down, left and right from the current cell.

Input

  • First line of the input contains an integer T denoting the number of different types of scenarios.
  • Each of the next T lines will contain two integers N, M denoting the dimensions of the maze.

Output

For each of the T scenarios, output a single line containing "Yes" or "No" (without quotes) denoting whether the Chef can get out of the maze or not.

Constraints

  • 1 ≤ T ≤ 105
  • 1 ≤ N, M ≤ 1018

Subtasks

Subtask #1 : (30 points)

1 ≤ T ≤ 100 1 ≤ N, M ≤ 10

Subtask #2 : (70 points)

Original Constraints

Sample 1:

Input
Output
1
2 2
Yes

Explanation:

Example case 1.
Chef can start from (1,1), move down to (2,1), then move right to (2,2) and finally move upwards to reach (1,2). As, he is able to visit all the cells exactly once and sum of absolute differences of corresponding x and y dimension is 1, we can call this path a magical path.



Code(c++):-


#include <iostream>

static auto testcase(unsigned long N, unsigned long M) {
    return (N == 1 && M == 2)
     || (N == 2 && M == 1)
     || (N != 1 && M != 1 && (N % 2 == 0 || M % 2 == 0));
}

static void testcase() {
    unsigned long N, M;
    std::cin >> N >> M;
    std::cout << (testcase(N, M) ? "Yes\n" : "No\n");
}

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    unsigned T;
    std::cin >> T;
    while(T--)
        testcase();
}


Code(java):-


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

/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
        Scanner sc=new Scanner(System.in);
        int t=sc.nextInt();
        while(t-->0){
         long n=sc.nextLong();
         long m=sc.nextLong();
         if(n==1){
         if(m==2)
         System.out.println("Yes");
         else
         System.out.println("No");
         }
         else if(m==1){
         if(n==2)
         System.out.println("Yes");
         else
         System.out.println("No");
         }
         else {
         if(n%2==1&&m%2==1)
         System.out.println("No");
         else
         System.out.println("Yes");
         }
        
        
        }
    }
}


Recommended Post :-

HCL Coding Questions:-

Capgemini Coding Questions:-

Companies interview:-

Full C course:-    

Key points:-

Cracking the coding interview:-

 Array and string:-

Tree and graph:-

Hackerearth Problems:-

Hackerrank Problems:-

Data structure:-

 MCQs:-