Given two integers X and Y, the task is to check if these two integers can be made equal to 0 by using the given operation any number of times. An operation is described as follows –
- Choose an arbitrary integer Z.
- Update the values with either of the following values:
- X = X – 2*Z and Y = Y – 3*Z
- X = X – 3*Z and Y = Y – 2*Z
Input: X = 6, Y = 9
Operation 1: Choose Z = 3, X = 6 – 2*3 = 0 and Y = 9 – 3*3 = 0
Since X and Y can be made equal to 0 using 1 operation, the required answer is Yes.
Input: X = 33, Y = 27
Operation 1: Choose Z = 9, X := 33 – 3*9 = 6 and Y := 27 – 2*9 = 9
Operation 2: Choose Z = 3, X := 6 – 2*3 = 0 and Y := 9 – 3*3 = 0
Since X and Y can be made equal to 0 using 2 operation, the required answer is Yes.
Approach: Let’s assume X ≤ Y. Then the answer is Yes if two following conditions holds:
- (X + Y) mod 5 = 0: because after each operation the value (X + Y) mod 5 does not change.
Let’s assume some arbitrary number Z has been chosen.
Therefore, the value (X + Y) will be changed to
((X - 3Z) + (Y - 2Z))
This is equal to
(X + Y - 5Z)
For this value to be equal to 0, X + Y = 5Z. Therefore, on taking mod on both the sides, (X + Y) mod 5 has to be equal to 0.
- 3*X >= 2*Y so that the subtraction doesnt make the values of X and Y negative.
Below is the implementation of the above approach:
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.