Minimum And Maximum

Posted: 24 Feb, 2021
Difficulty: Easy

PROBLEM STATEMENT

Try Problem

You have been given two integers 'A' and 'B' return minimum and maximum of both the numbers without branching.

Note :
Branching includes if-else statements, the ternary operator, or switch-case statements. Therefore you should not use any of the above approaches to solving the problem.
Input Format :
The first line contains a single integer ‘T’ representing the number of test cases.

The only line of each test case contains two space-separated integers 'A' and 'B' representing two integers whose minimum and the maximum you need to return.
Output Format :
For each test case return the minimum and maximum of two numbers.
Note:
You do not need to print anything; it has already been taken care of. Just implement the function.
Constraints :
1 <= T <= 1000
1 <= 'A' <= 10^9
1 <= 'B' <= 10^9

Time Limit: 1sec
Approach 1

Let us assume ‘b’ is minimum and ‘a’ is maximum among ‘a’ and ‘b’.( ‘a’ < ‘b’ ) is the comparison we will be using. We will calculate minimum and maximum as follows: 

 

  • We can write the minimum as ‘b’ ^ (( ‘a’ ^ ‘b’) & - ( ‘a’ < ‘b’)).
    • If ‘b’ is minimum ‘a’ < ‘b’ comes out to be all zeroes. (‘a’ ^ ‘b’) & ‘0’ comes out to ‘0’. Therefore expression value comes out to be ‘b’ finally which is the minimum.
    • If ‘a’ is minimum ‘a’ < ‘b’ comes out to be all ones. (‘a’ ^ ‘b’) & ‘1’ comes out to (‘a’ ^ ‘b’). Therefore expression value comes out to be ‘a’ finally which is the minimum.

 

  • We can write maximum as ‘a’ ^ (( ‘a’ ^ ‘b’) & - ( ‘a’ < ‘b’)).
    • If ‘a’ is maximum ‘a’ < ‘b’ comes out to be all zeroes. (‘a’ ^ ‘b’) & ‘0’ comes out to ‘0’. Therefore expression value comes out to be ‘a’ finally which is the maximum.
    • If ‘b’ is maximum ‘a’ < ‘b’ comes out to be all ones. (‘a’ ^ ‘b’) & ‘1’ comes out to (‘a’ ^ ‘b’). Therefore expression value comes out to be ‘b’ finally which is the maximum.

 

  • Return the minimum and the maximum.
Try Problem