Given a positive coordinate ‘X’ and you are at coordinate ‘0’, the task is to find the minimum time required to get to coordinate ‘X’ with the following move :
At time ‘t’, you can either stay at the same position or take a jump of length exactly ‘t’ either to the left or to the right. In other words, you can be at coordinate ‘x – t’, ‘x’ or ‘x + t’ at time ‘t’ where ‘x’ is the current position.
Input: 6 Output: 3 At time 1, jump from x = 0 to x = 1 (x = x + 1) At time 2, jump from x = 1 to x = 3 (x = x + 2) At time 3, jump from x = 3 to x = 6 (x = x + 3) So, minimum required time is 3. Input: 9 Output: 4 At time 1, do not jump i.e x = 0 At time 2, jump from x = 0 to x = 2 (x = x + 2) At time 3, jump from x = 2 to x = 5 (x = x + 3) At time 4, jump from x = 5 to x = 9 (x = x + 4) So, minimum required time is 4.
Approach: The following greedy strategy works:
We just find the minimum ‘t’ such that
1 + 2 + 3 + ... + t >= X.
(t * (t + 1)) / 2 = Xthen answer is ‘t’.
- Else if
(t * (t + 1)) / 2 > X, then we find
(t * (t + 1)) / 2 – Xand remove this number from the sequence
[1, 2, 3, ..., t]. The resulting sequence sums up to ‘X’.
Below is the implementation of the above approach:
The minimum time required is : 3
- Minimum number of moves to reach N starting from (1, 1)
- Minimum moves to reach target on a infinite line | Set 2
- Find minimum moves to reach target on an infinite line
- Minimum number of moves required to reach the destination by the king in a chess board
- Minimum cost to reach a point N from 0 with two different operations allowed
- Probability of reaching a point with 2 or 3 steps at a time
- Minimum time required to complete a work by N persons together
- Minimum time required to fill a cistern using N pipes
- Find minimum time to finish all jobs with given constraints
- Minimum time to return array to its original state after given modifications
- Total position where king can reach on a chessboard in exactly M moves | Set 2
- Total position where king can reach on a chessboard in exactly M moves
- Expected number of moves to reach the end of a board | Dynamic programming
- Expected number of moves to reach the end of a board | Matrix Exponentiation
- Number of steps required to reach point (x,y) from (0,0) using zig-zag way
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. 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.