Problem Statement
Suwako wants to reach the desired destination in a specific way: using a series of jumps with pre-determined lengths. You are given these lengths in a
Note that Suwako can jump onto arbitrary points in the plane, they are not required to have integer coordinates. Return "Able" (quotes for clarity) if Suwako is able to reach her desired destination from (0, 0) using the desired sequence of jump lengths. Otherwise, return "Not able".
Definition
- Class:
- Jumping
- Method:
- ableToGet
- Parameters:
- int, int, int[]
- Returns:
- String
- Method signature:
- String ableToGet(int x, int y, int[] jumpLengths)
- (be sure your method is public)
Constraints
- x will be between -1,000 and 1,000, inclusive.
- y will be between -1,000 and 1,000, inclusive.
- len will contain between 1 and 50 elements, inclusive.
- Each element in len will be between 1 and 1,000, inclusive.
Examples
5
4
{2, 5}
Returns: "Able"
One possibility is to jump from (0, 0) to (2, 0), and then from (2, 0) to (5, 4).
3
4
{4}
Returns: "Not able"
The distance from (0, 0) to (3, 4) is 5. You cannot get there using a single jump of length 4 - it is too short.
3
4
{6}
Returns: "Not able"
The distance from (0, 0) to (3, 4) is 5. You cannot get there using a single jump of length 6 - it is too long.
0
1
{100, 100}
Returns: "Able"
Here, one possible solution looks as follows: Let t = sqrt(100*100 - 0.5*0.5). Suwoko will make her first jump from (0, 0) to (t, 0.5), and her second jump from (t, 0.5) to (0, 1).
300
400
{500}
Returns: "Able"
11
12
{1,2,3,4,5,6,7,8,9,10}
Returns: "Able"
11
12
{1,2,3,4,5,6,7,8,9,100}
Returns: "Not able"
421
326
{530, 701, 509, 753, 257, 257, 120, 712, 352, 844, 706, 109, 394}
Returns: "Able"
-742
353
{933, 918, 848, 973, 869, 981, 224, 550, 593, 165, 170, 552, 428, 191, 625, 636, 921, 945, 311, 863}
Returns: "Able"
-350
215
{711, 237}
Returns: "Not able"
-294
92
{398, 676, 492, 191, 345, 135, 426, 630, 31, 728, 127, 744, 335, 105, 761, 750, 621, 257, 933, 573, 614, 491, 510, 120, 406, 696, 50, 328, 720, 498}
Returns: "Able"
-542
-631
{357, 185, 94, 246, 8, 307, 510, 755, 353, 666, 784, 739, 802, 691, 331, 338, 196, 657, 964, 12, 428, 43, 107, 969, 213, 2, 511, 481, 659, 572, 332, 815, 848, 565, 198, 626, 439, 932, 19, 488, 152, 188, 914, 180, 996, 751, 751, 914, 563, 135}
Returns: "Able"
456
-572
{831, 141, 558, 679, 727, 504, 598, 409, 894, 989, 239, 86, 94, 189, 721, 212, 747, 388, 711, 210, 888, 669}
Returns: "Able"
-688
-29
{675}
Returns: "Not able"
343
835
{371, 788, 303}
Returns: "Able"
-843
953
{401, 997, 143, 586, 861, 48, 925, 732, 159, 387, 220}
Returns: "Able"
521
411
{683, 875, 62, 7, 603, 269}
Returns: "Able"
777
998
{724, 90, 107, 320, 131, 656, 733, 994, 975, 596, 811, 674, 56, 731, 96, 246, 706, 695, 949}
Returns: "Able"
-227
977
{761, 742, 757, 645, 144, 641, 738, 680, 136, 150, 530, 211, 608, 418, 256, 788, 374, 627, 446, 113, 173, 596, 154, 54, 184}
Returns: "Able"
-712
313
{177, 78, 777, 400, 655, 729, 3, 162, 456, 871, 317, 695, 382, 931, 481, 605, 387, 360}
Returns: "Able"
140
138
{703, 366, 454, 733, 837, 433, 564, 18, 108, 584, 911, 468, 117, 547, 720, 529, 72, 108, 257, 521, 354, 529, 155, 431, 478, 49, 521, 205, 415, 811}
Returns: "Able"
455
-397
{132, 702, 710, 752, 23, 818, 653, 925, 696, 472, 154, 626, 979, 617, 143, 598, 89, 733, 918, 405, 744, 396, 750, 408, 937, 303, 768, 46, 564, 341, 399, 897, 52, 808, 768, 998, 979, 651, 810, 331, 361, 717, 162, 294, 210, 754, 99, 131, 635}
Returns: "Able"
-92
854
{32, 693, 402, 675, 295, 694, 166, 950, 766, 738, 459, 842, 49, 944, 230, 216, 390, 210, 389, 755, 244, 502, 272, 517, 565, 278, 913, 6, 612, 213, 783, 93, 124, 202, 325, 5, 438, 603, 805}
Returns: "Able"
-285
793
{576, 907, 760, 627, 897, 860, 764, 359, 578, 485, 748, 157, 949, 606, 455, 195, 360, 431, 324, 884, 25, 448, 203, 848}
Returns: "Able"
692
-538
{589, 305, 134, 559, 843, 415, 568, 729, 507, 392, 1, 993, 119, 399, 719, 869, 976, 580, 120, 364, 597, 380, 917, 467, 841, 233, 431, 415, 156, 572, 312, 180, 797, 301, 217, 904, 994, 56, 729, 482, 906, 30, 38}
Returns: "Able"
506
-817
{378, 683, 555, 507, 758, 530, 581, 642}
Returns: "Able"
676
-421
{661, 491, 617, 733, 607, 115, 186, 648, 228, 436, 59, 184, 111, 743, 375, 605, 672, 873, 606, 481, 672, 980, 718, 482, 681, 792, 776, 1, 47, 833, 469, 859, 227, 179}
Returns: "Able"
-803
654
{704, 464, 923, 512, 894}
Returns: "Able"
-285
-139
{920, 513, 93, 233, 221, 224, 39, 610, 453, 523, 729, 977, 153, 518, 424, 403, 705, 937, 351, 36, 826, 129, 965, 427, 166, 776, 405, 165, 874, 259, 625, 822}
Returns: "Able"
-868
-285
{227, 605, 452, 38, 839, 626, 380, 420, 576, 689, 898, 821, 79, 967, 798, 56, 675, 229, 403, 677, 280, 383, 977, 262, 328}
Returns: "Able"
877
739
{762, 343, 698, 34, 806, 319, 876, 939, 321, 758, 440, 289, 772, 528, 857, 869, 65, 571, 480, 268, 339, 412, 207, 747, 279}
Returns: "Able"
548
595
{143, 597, 209, 72, 169, 377, 8, 313, 949, 718, 358, 219, 855, 991, 854, 240, 450, 985, 712, 975, 822, 637, 329, 786, 494, 268, 244, 532, 955, 140, 984, 284, 685, 16, 597}
Returns: "Able"
-195
-449
{423, 214}
Returns: "Able"
-860
-463
{398, 577, 716, 850, 841, 514, 889, 423, 280, 583, 941, 867, 547, 801, 164, 923, 279, 46, 237, 758, 900, 186, 272, 818, 993, 433, 99, 132, 246, 185, 187, 636, 803, 705, 851, 578}
Returns: "Able"
508
-610
{779, 338, 288, 620, 516, 888, 58, 454, 554, 889, 584, 786, 176, 90, 810, 354, 596, 98, 570, 271, 169, 239, 199, 484, 145, 592, 101, 943, 354, 586, 903, 190, 146, 520, 91, 545, 670, 343, 761, 698, 701, 978, 126}
Returns: "Able"
975
181
{704}
Returns: "Not able"
592
-447
{957, 527, 521, 976, 297, 149, 918, 609, 327, 846}
Returns: "Able"
-297
1
{37, 646, 305, 644, 26, 256, 370, 260, 324, 880, 183, 708, 740, 357, 124, 919, 336}
Returns: "Able"
-262
-185
{270, 335, 486, 121, 907, 215, 681, 71, 280}
Returns: "Able"
154
532
{615, 745, 64, 327, 44, 876, 724, 58, 912, 419, 962, 473, 812, 767, 824, 840, 75, 511, 803, 323, 146, 923}
Returns: "Able"
943
243
{735, 279, 312, 10, 614, 438, 818, 214, 151, 604, 70, 288, 492, 550, 56, 206, 630, 669, 630, 253, 812, 251, 971, 646, 392, 91, 775, 565, 18, 959, 354, 817, 175, 784, 717, 408, 9, 895, 257, 264, 291, 250, 896, 883, 907, 50, 24, 450}
Returns: "Able"
-337
703
{65, 803, 74, 644, 712, 60, 548, 170, 977, 153, 834, 405, 349, 90, 266, 511, 303, 998, 467, 823, 884, 129, 981, 846, 96, 718, 50, 420, 127, 730, 579, 537, 184, 575, 49, 39, 907, 314, 293, 892}
Returns: "Able"
-74
-188
{549, 764, 518, 18, 942, 449, 99, 387, 223, 808, 226, 695, 425, 548, 484, 619, 48}
Returns: "Able"
666
247
{896, 542, 78, 918, 233, 616, 611, 726, 386, 915, 172, 307, 654, 641, 399}
Returns: "Able"
-693
528
{124, 578, 281, 581, 369, 159}
Returns: "Able"
-60
43
{944, 267}
Returns: "Not able"
487
253
{853, 35, 982, 863, 299, 202, 940, 999, 312, 885, 874, 259, 317, 144, 479, 675, 438, 30, 416, 572, 468, 558, 136, 456, 293, 549, 705, 292, 365, 679, 709, 856}
Returns: "Able"
725
807
{402, 427, 566, 288, 300, 725, 917, 950, 211, 454, 524, 859, 554, 3, 156, 960, 107, 288, 358, 4, 883, 985, 488, 811, 443, 771}
Returns: "Able"
-299
-830
{549, 98}
Returns: "Not able"
-12
-361
{981, 177, 16, 634, 355, 195, 356, 171, 893, 323, 654, 502, 524, 379, 91, 21, 43, 268, 153}
Returns: "Able"
-342
-927
{60, 693, 573, 643, 212, 263, 995, 117, 276, 925, 385, 107, 780, 374, 8, 667, 67, 143, 178, 282, 775, 935, 787, 518, 293, 899}
Returns: "Able"
-590
172
{621, 15, 821, 412}
Returns: "Able"
-337
-114
{779, 504, 718, 216, 256, 961, 506, 454, 555, 612, 340, 370, 32, 905, 735, 87, 36, 17, 446, 166, 328, 877, 135, 601, 580, 603, 560, 652, 871, 746, 154, 948, 252, 519, 414, 484, 962, 131, 221, 866}
Returns: "Able"
637
-702
{568, 244, 748, 258, 621, 197, 17, 347, 688, 448, 202, 570, 444, 633, 979, 548, 347, 636, 265, 248, 453, 110, 896, 228, 103, 422}
Returns: "Able"
-115
801
{837, 124, 587, 618, 252, 841, 728, 32, 887, 118, 226, 448, 719, 839, 630, 426, 1000, 72}
Returns: "Able"
-9
-893
{752, 933, 174, 140, 220, 211, 591, 343, 263, 548, 455, 185, 718, 98, 918, 267, 237, 216, 348, 609, 918, 266, 662, 441, 371, 701, 901, 135, 236, 86, 478}
Returns: "Able"
-555
-259
{824, 93, 363, 684, 339, 789, 119, 376, 957, 967, 329, 805, 832, 136, 388, 359, 695, 964, 593, 310, 551, 663, 750, 974, 408, 509, 668, 479, 790, 195}
Returns: "Able"
11
12
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
Returns: "Able"
15
11
{2, 2, 6, 8, 10, 4, 11, 1 }
Returns: "Able"
1
1
{2 }
Returns: "Not able"
3
4
{4 }
Returns: "Not able"
11
12
{1, 2, 3, 4, 5, 6, 7, 8, 9, 100 }
Returns: "Not able"
1
0
{100, 101 }
Returns: "Able"
1
1
{100, 10 }
Returns: "Not able"
10
10
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }
Returns: "Able"
0
1
{2, 2, 2, 1 }
Returns: "Able"
8
0
{10, 1 }
Returns: "Not able"
1
1
{1 }
Returns: "Not able"
0
5
{1, 1, 1, 1, 1, 8 }
Returns: "Able"
0
1
{100, 100 }
Returns: "Able"
10
0
{100, 10 }
Returns: "Not able"
3
4
{5, 100 }
Returns: "Not able"
0
5
{1 }
Returns: "Not able"
6
8
{2, 3, 2, 3 }
Returns: "Able"
3
4
{1, 1 }
Returns: "Not able"
4
5
{100, 1, 1, 1 }
Returns: "Not able"
5
4
{2, 5 }
Returns: "Able"
100
100
{1, 2, 3, 1000 }
Returns: "Not able"
4
4
{4 }
Returns: "Not able"
3
4
{1, 1, 1, 1 }
Returns: "Not able"
0
1
{100 }
Returns: "Not able"
1
1
{1, 3, 4, 5, 7, 6, 2, 1 }
Returns: "Able"
11
12
{1, 2, 3, 4, 5, 6, 7, 8, 100, 9 }
Returns: "Not able"
0
0
{2, 2 }
Returns: "Able"
1
1
{100, 1 }
Returns: "Not able"
1
0
{100, 1 }
Returns: "Not able"
0
0
{1, 2, 1, 3, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 2, 1, 2, 2, 2, 1, 3, 1, 2, 2, 3, 1, 2, 3, 2, 1, 2, 2, 3 }
Returns: "Able"
0
0
{10, 10, 10 }
Returns: "Able"
-5
0
{100, 100, 3, 4 }
Returns: "Able"
0
20
{50, 100 }
Returns: "Not able"
10
0
{10, 38, 10, 1, 10 }
Returns: "Able"
0
0
{1 }
Returns: "Not able"
1
1
{10, 20, 10 }
Returns: "Able"
3
4
{1, 1, 1, 1, 1 }
Returns: "Able"
2
0
{2, 4, 8, 16, 32, 64, 128, 256, 512 }
Returns: "Able"
3
3
{1, 1, 100 }
Returns: "Not able"
1000
1000
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }
Returns: "Able"
5
4
{2, 4 }
Returns: "Not able"
5
6
{7 }
Returns: "Not able"
0
4
{3, 10, 3 }
Returns: "Able"
1
1
{1, 3 }
Returns: "Not able"
0
0
{1, 5, 11, 5 }
Returns: "Able"
3
4
{30, 25 }
Returns: "Able"
0
98
{100, 1 }
Returns: "Not able"
3
4
{2, 100 }
Returns: "Not able"
3
4
{10 }
Returns: "Not able"
0
0
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }
Returns: "Able"
300
400
{500 }
Returns: "Able"
0
0
{4, 4 }
Returns: "Able"
1000
-1000
{1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1000, 50, 500, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 20, 30, 40, 50, 60, 70, 80, 90, 11, 22, 33, 44, 55, 66, 77, 88, 99, 999, 20 }
Returns: "Able"
1
0
{3, 1 }
Returns: "Not able"
3
4
{1, 4 }
Returns: "Able"
11
12
{100, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }
Returns: "Not able"
1000
1000
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
Returns: "Not able"
3
5
{1, 2, 10, 3 }
Returns: "Able"
3
4
{5, 5 }
Returns: "Able"
4
0
{5, 100 }
Returns: "Not able"
0
3
{1, 100 }
Returns: "Not able"
33
52
{1, 2, 3, 4, 5, 6, 7, 8, 9, 100 }
Returns: "Able"
1
0
{2, 3 }
Returns: "Able"
1
0
{500, 500, 500, 500, 555 }
Returns: "Able"
0
1
{100, 200, 100 }
Returns: "Able"
3
4
{6, 12 }
Returns: "Not able"
11
12
{1, 2, 3, 4, 5, 6, 7, 8, 100, 9, 1000 }
Returns: "Not able"
3
4
{5 }
Returns: "Able"
1
0
{4, 3 }
Returns: "Able"
4
0
{1, 2 }
Returns: "Not able"
0
0
{1, 3, 3 }
Returns: "Able"
97
0
{1, 2, 100 }
Returns: "Able"
0
1
{3, 1, 3 }
Returns: "Able"
1000
1000
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 11, 1, 1, 1, 1, 1, 1, 11, 1, 1 }
Returns: "Not able"
4
4
{5 }
Returns: "Not able"
3
4
{4, 4, 6 }
Returns: "Able"
0
0
{2, 3, 2 }
Returns: "Able"
2
0
{1, 3 }
Returns: "Able"
0
0
{1, 1, 2 }
Returns: "Able"
0
0
{100, 100 }
Returns: "Able"
0
0
{4, 4, 7 }
Returns: "Able"
11
12
{100, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
Returns: "Not able"