Given three 2-Dimentional vector co-ordinates A, B and C. The task is to perform below operations any number of times on vector A to get vector B :
- Rotate the vector 90 degrees clockwise.
- Add vector C to it.
Print “YES” B is obtained using the above operations, else Print “NO”.
Input: Vector A: 2 3, Vector B: 2 3, Vector C: 0 0 Output: YES The given vector A has coordinate (2, 3) and we need to convert this vector A to vector B which is also (2, 3). By rotating vector A 4 times by 90 degrees and adding it to vector C(0, 0) will give us vector B(2, 3). Input: Vector A: 0 0, Vector B: 1 1, Vector C: 2 2 Output: NO
Below is the step by step algorithm to solve this problem:
- Initialize three vectors of 2-D coordinates as A ( a, b ), B ( x, y ) and C ( p, q ).
- Coordinates of vector A can be of any quadrant. So, initialize a check function for all the quadrant and check if any of it is true.
- Find a-x and b-y, which will tell us how much we need to make it to vector B.
- Initialize d = p*p + q*q. If d = 0 then you need not to add anything in vector A.
- If D > 0, then check if a*p + b*q and b*p – a*q is in the multiple of ‘d’ so that it is possible to get the vector B.
Below is the implementation of above algorithm:
- Find the mean vector of a Matrix
- How to convert Vector to array in Java
- Program to Convert a Vector to List in Java
- Adding two polynomials using Linked List
- Find minimum possible digit sum after adding a number d
- Adding new column to existing DataFrame in Pandas
- Reach A and B by multiplying them with K and K^2 at every step
- Minimum step to reach one
- Count ways to reach the n'th stair
- Minimum number of jumps to reach end
- Count ways to reach a score using 1 and 2 with no consecutive 2s
- Minimum block jumps to reach destination
- Lexicographically Kth smallest way to reach given coordinate from origin
- Minimum steps to reach target by a Knight | Set 2
- Minimum cost to reach a point N from 0 with two different operations allowed
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.