Problem Statement
You are on a straight line that is infinite in both directions. Your starting location is coordinate 0 and your goal is to reach coordinate goal using as few jumps as possible.
Your jumps are numbered starting from 1. The length of jump x must be exactly x^2 (x squared). For each jump you get to choose the direction in which you jump (left or right).
Return the smallest number of jumps needed to reach the given goal, or -1 if the goal cannot be reached.
Definition
- Class:
- QuadraticJumping
- Method:
- jump
- Parameters:
- long
- Returns:
- long
- Method signature:
- long jump(long goal)
- (be sure your method is public)
Constraints
- goal will be between 1 and 10^16, inclusive.
Examples
14
Returns: 3
Jump right three times: from 0 to 1, from 1 to 1+4 = 5, and from 5 to 5+9 = 14.
28
Returns: 4
Jump left, right, right, right: 0 to -1 to 3 to 12 to 28.
7
Returns: 6
Jump left, twice right, twice left, right: 0 to -1 to 3 to 12 to -4 to -29 to 7.
333383335000
Returns: 10000
Ten thousand jumps to the right.
1
Returns: 1
2
Returns: 4
10000000000000000
Returns: 310723
3
Returns: 2
4
Returns: 3
5
Returns: 2
6
Returns: 3
7
Returns: 6
8
Returns: 7
9
Returns: 6
10
Returns: 4
20
Returns: 4
26
Returns: 7
30
Returns: 4
36
Returns: 7
46
Returns: 8
85
Returns: 9
87
Returns: 9
107
Returns: 9
110
Returns: 11
118
Returns: 11
120
Returns: 7
127
Returns: 9
130
Returns: 7
136
Returns: 8
143
Returns: 9
151
Returns: 10
161
Returns: 9
166
Returns: 11
177
Returns: 9
188
Returns: 11
228
Returns: 11
4718
Returns: 24
134879
Returns: 74
593910
Returns: 123
648687
Returns: 125
926916
Returns: 143
23146233
Returns: 413
87625098
Returns: 643
645789166
Returns: 1247
47851485848
Returns: 5236
60197865599
Returns: 5653
71671788067
Returns: 5993
318020693182
Returns: 9844
350945058219
Returns: 10173
357547063637
Returns: 10237
711353864467
Returns: 12877
1179055891094
Returns: 15236
1932520668040
Returns: 17964
3027629233969
Returns: 20865
3385661650782
Returns: 21659
6854314006592
Returns: 27399
9958709817041
Returns: 31030
10785516740821
Returns: 31866
11286543227627
Returns: 32353
13659923169527
Returns: 34477
24880797026992
Returns: 42104
30809391941040
Returns: 45215
38539580474166
Returns: 48716
39491890731803
Returns: 49117
50753490775641
Returns: 53398
57128013105956
Returns: 55547
77913068063384
Returns: 61600
95097976577835
Returns: 65833
113042174376828
Returns: 69735
135955472296735
Returns: 74161
138195069419392
Returns: 74567
152441659668676
Returns: 77044
181442630693807
Returns: 81649
228900300319554
Returns: 88227
234518682170346
Returns: 88940
326219547939600
Returns: 99284
360325820707471
Returns: 102630
385770271966458
Returns: 104991
402394728277801
Returns: 106477
495975894923702
Returns: 114164
555687561107734
Returns: 118575
587823185599896
Returns: 120816
664167971649955
Returns: 125837
783266352449731
Returns: 132946
825522284323516
Returns: 135296
864883213957814
Returns: 137412
968970228933391
Returns: 142718
1046839613248361
Returns: 146445
1062053179260068
Returns: 147151
1101395785739288
Returns: 148944
1109981085046041
Returns: 149330
1123077346316210
Returns: 149915
1368240994967111
Returns: 160113
1746533564826513
Returns: 173686
1790979329232048
Returns: 175147
2300205645845480
Returns: 190384
2336678867586514
Returns: 191384
2475410418360594
Returns: 195100
2553953085477863
Returns: 197141
2733964993407844
Returns: 201668
3050082104514022
Returns: 209160
3345696652104124
Returns: 215711
3422352261057898
Returns: 217347
3842473346086793
Returns: 225897
4398288311348703
Returns: 236305
4515685811534293
Returns: 238389
4766719437270302
Returns: 242727
5072807383198172
Returns: 247812
5612516176125555
Returns: 256306
5682306688371870
Returns: 257367
5847080912148528
Returns: 259831
6114275436883064
Returns: 263728
6167357533749204
Returns: 264488
6374459209651990
Returns: 267416
6514635893303184
Returns: 269363
7164317295546619
Returns: 278037
7181492308513360
Returns: 278256
7399133064593942
Returns: 281039
7500294201036039
Returns: 282314
7839716770187909
Returns: 286510
8069306719758068
Returns: 289283
8550628688510914
Returns: 294923
8707531531262397
Returns: 296714
8713431509446235
Returns: 296782
9241173494333621
Returns: 302657
6664213374266642
Returns: 271408
333383334744
Returns: 10003
9999999999999999
Returns: 310725