Problem Statement
You are given the
Definition
- Class:
- KnightOfIntegerland
- Method:
- able
- Parameters:
- int, int, int
- Returns:
- String
- Method signature:
- String able(int d, int x, int y)
- (be sure your method is public)
Notes
- In the problem statement, sqrt(d) denotes the square root of d.
- The Euclidean distance between two points (x1, y1) and (x2, y2) is equal to sqrt((x1-x2)^2 + (y1-y2)^2).
- There is no limit on the coordinates of points visited during your journey. In particular, they are allowed to be outside of the rectangle with corners (0, 0) and (x, y).
Constraints
- d will be between 1 and 1,000,000,000, inclusive.
- x will be between -1,000,000,000 and 1,000,000,000, inclusive.
- y will be between -1,000,000,000 and 1,000,000,000, inclusive.
Examples
25
1
0
Returns: "YES"
The distance covered by each of your steps must be sqrt(25)=5. You can reach (1, 0) in this way: (0, 0) -> (3, 4) -> (6, 0) -> (1, 0).
25
2276
-9059
Returns: "YES"
From any point (x, y) we can reach (x+1, y) as shown in Example 0. Also, from any point (x, y) we can reach (x, y-1) using a similar sequence of moves. Hence, it is possible to get from (0, 0) to (2276,-9059) by repeating the first sequence of moves 2276 times and then the second sequence of moves 9059 times.
5
58585858
85858585
Returns: "YES"
For d=5 you move like a chess knight. It is well known that the chess knight can reach any cell on an infinite chessboard.
4
47474747
74747474
Returns: "NO"
It's easy to see that for any point (x, y) you can reach, x and y must be both even.
169
2
0
Returns: "YES"
One of the solutions is: (0, 0) -> (13, 0) -> (1, 5) -> (14, 5) -> (2, 0).
3
1
1
Returns: "NO"
In this case you can't achieve any integer point other than (0, 0).
382621149
838804090
-451572978
Returns: "NO"
77843137
522507003
-951731302
Returns: "YES"
838915904
-42156413
-723603296
Returns: "NO"
383801202
-969518505
69443379
Returns: "YES"
127457370
-9008670
-573217785
Returns: "NO"
329195605
60167613
-30706393
Returns: "YES"
817027042
859734983
-635985221
Returns: "YES"
658593989
279149883
940017988
Returns: "YES"
967357453
-857923323
-660311840
Returns: "YES"
399864644
749823176
-682616672
Returns: "YES"
30193553
-75250549
797404855
Returns: "YES"
789203780
373464307
-983802252
Returns: "NO"
229997941
-710840161
-561945280
Returns: "YES"
527041709
-599445342
857549976
Returns: "YES"
876922996
445482252
353476416
Returns: "YES"
831212980
-757226114
123863830
Returns: "YES"
660387562
-338640403
261592188
Returns: "NO"
195892225
666311240
-993018054
Returns: "YES"
248748320
756675240
444512744
Returns: "YES"
256670933
401208468
-615244468
Returns: "YES"
657357128
827331300
-781395323
Returns: "NO"
852344642
-687473411
665625643
Returns: "YES"
942127658
-842641042
695551100
Returns: "YES"
314230432
44975892
-919414300
Returns: "YES"
552709705
-11887766
-655351176
Returns: "YES"
78391997
-397477992
540427150
Returns: "YES"
895511908
-82307108
-963546636
Returns: "YES"
725054177
833339776
-750573758
Returns: "YES"
63308457
103324299
407721492
Returns: "YES"
933445330
-624373454
579362905
Returns: "NO"
659780840
-18659410
887664316
Returns: "NO"
308680228
485077662
896710896
Returns: "YES"
880431578
-635666821
115296660
Returns: "NO"
957822085
-948619468
-315411971
Returns: "NO"
406054853
-413599179
618060325
Returns: "YES"
504631400
138839022
-136009580
Returns: "NO"
887411362
-467213451
521490704
Returns: "NO"
707306036
506388610
-553380316
Returns: "YES"
348288274
-175167580
835836681
Returns: "NO"
433803177
-521399793
-655893240
Returns: "YES"
271286362
-314895797
-191271319
Returns: "YES"
446210665
85761404
-216556645
Returns: "YES"
430689586
876908676
381376737
Returns: "NO"
412600282
-927355248
-533052521
Returns: "NO"
118657633
591546792
538147411
Returns: "YES"
74364001
558878644
-130350416
Returns: "YES"
493817994
-997285452
-706059378
Returns: "YES"
7455769
-544134025
703784191
Returns: "YES"
112430953
571577696
-358058781
Returns: "YES"
723712393
269897098
507984841
Returns: "YES"
81692441
10718678
-308896102
Returns: "YES"
332302626
-247539516
-331706672
Returns: "NO"
895216378
-133081354
-334482876
Returns: "YES"
660945105
999377376
-658224270
Returns: "YES"
238555088
-360946228
312350045
Returns: "NO"
988254368
-60652500
-896151668
Returns: "YES"
864245205
-947030109
315314670
Returns: "YES"
534280986
-558551361
54121634
Returns: "NO"
645605057
538901413
-651425269
Returns: "YES"
824319445
107797381
-493435287
Returns: "YES"
282461593
-903821151
246511132
Returns: "YES"
735787130
83745570
762572631
Returns: "NO"
150010666
-161303318
-455269434
Returns: "YES"
190818037
-243378430
-101730249
Returns: "YES"
96884749
-185531543
-43088554
Returns: "YES"
870984916
651904146
-409074166
Returns: "YES"
602879146
-918803100
-560933098
Returns: "YES"
984939106
5595086
-628396326
Returns: "YES"
332654578
-234373185
-330168300
Returns: "NO"
44154473
541757953
371836960
Returns: "YES"
118024052
-635052052
429850500
Returns: "YES"
312714569
862027535
-930350497
Returns: "YES"
887641988
735011516
-620577818
Returns: "YES"
790024040
72759802
714800088
Returns: "NO"
520097293
348491966
-538586716
Returns: "YES"
323667920
-486219064
970997537
Returns: "NO"
487093802
77984837
548233097
Returns: "YES"
791523092
238149478
598265260
Returns: "YES"
600926690
-807241372
-789987604
Returns: "YES"
76401121
897577973
-692144610
Returns: "YES"
109197992
-94413504
-139488045
Returns: "NO"
236370752
-899165212
967070133
Returns: "NO"
111383144
-140167122
-25709756
Returns: "NO"
396758468
12136564
643481544
Returns: "YES"
348123994
-298566188
69286009
Returns: "NO"
814395829
364747611
284101150
Returns: "YES"
936523114
724987185
-393715882
Returns: "NO"
297335284
573405008
-965274879
Returns: "NO"
901117274
90122836
306302865
Returns: "NO"
539393777
951122401
32934275
Returns: "YES"
408228893
-32239051
-956287045
Returns: "YES"
6008026
140030205
-636780312
Returns: "NO"
667425082
662553261
897088368
Returns: "NO"
563594330
554638651
-929771967
Returns: "YES"
700273192
-609388040
-352611100
Returns: "YES"
262623556
854358976
404817775
Returns: "NO"
660522842
826018333
-437741377
Returns: "NO"
382044941
579083895
487504573
Returns: "YES"
105387154
771633711
-305334395
Returns: "YES"
601692634
832305765
-842663809
Returns: "YES"
228295066
-87102195
335595969
Returns: "YES"
279124841
-4958666
-151653371
Returns: "YES"
981612532
497623150
-676312688
Returns: "YES"
358798410
-414214020
865993022
Returns: "NO"
772627069
-534820376
398895169
Returns: "YES"
802684882
-100210860
941708834
Returns: "YES"
783189520
-32758388
-283715404
Returns: "YES"
630644957
-846451327
-424656804
Returns: "YES"
547913232
-677058144
557711088
Returns: "YES"
493720884
982964385
-410833284
Returns: "NO"
190111336
-739925582
607689206
Returns: "YES"
623339848
-186388453
-97435524
Returns: "NO"
845616932
-475137162
669419184
Returns: "YES"
252531709
-323500977
804210169
Returns: "YES"
362740993
366037019
-200236263
Returns: "YES"
615578944
157366008
314184232
Returns: "YES"
338146721
-919735190
-490529446
Returns: "YES"
817035653
865593111
-355432245
Returns: "NO"
101976074
-386406428
575880963
Returns: "NO"
47833970
-36630907
-371420086
Returns: "NO"
636102378
-730933650
592467708
Returns: "YES"
614182185
-662903584
-298661664
Returns: "NO"
894936149
-781624220
326422976
Returns: "YES"
932427418
-825348834
-539507416
Returns: "YES"
701851761
789865032
830870493
Returns: "YES"
401548148
613146704
-234871982
Returns: "YES"
809366084
236433208
-76381218
Returns: "YES"
92782457
314590629
-873580104
Returns: "YES"
380945933
-928390233
160282977
Returns: "YES"
451874692
-986740662
-729489304
Returns: "YES"
803722162
815477714
97394611
Returns: "NO"
713126681
-671512856
-932332590
Returns: "YES"
500480528
-851595280
465378804
Returns: "YES"
866343626
51076585
414421034
Returns: "NO"
762706720
-89644306
-465946876
Returns: "NO"
705958093
938368125
235926151
Returns: "YES"
610055186
-482093547
107546675
Returns: "YES"
967905940
573773200
-221122762
Returns: "YES"
652837138
-634739114
-291443651
Returns: "NO"
693269768
837770408
361065288
Returns: "YES"
260899733
858685723
882261889
Returns: "YES"
696091181
527764929
-828758049
Returns: "YES"
93314537
561445843
-969302645
Returns: "YES"
808368101
214312811
-992032009
Returns: "YES"
386889632
104975596
303601116
Returns: "YES"
439795610
586081949
617661909
Returns: "YES"
900985797
956670156
217050647
Returns: "NO"
236439242
540372333
-973089579
Returns: "YES"
859662137
-349146000
-107140677
Returns: "YES"
653905850
-129066335
214008281
Returns: "YES"
416802739
0
0
Returns: "YES"
652288857
-10909100
305176751
Returns: "NO"
901153200
0
0
Returns: "YES"
341098945
0
0
Returns: "YES"
17832333
647066828
921704665
Returns: "NO"
302095078
0
0
Returns: "YES"
403836725
0
0
Returns: "YES"
231431616
-212086254
13128434
Returns: "NO"
289017735
865691753
-557509609
Returns: "NO"
4599156
0
0
Returns: "YES"
865139025
0
0
Returns: "YES"
182659321
-472710248
670624417
Returns: "YES"
42788805
46060021
127933275
Returns: "NO"
789026343
971410095
-283752980
Returns: "NO"
849081444
0
0
Returns: "YES"
176155788
900777271
-603095887
Returns: "NO"
401727674
-632486089
187535773
Returns: "YES"
147440196
0
0
Returns: "YES"
757934938
931814457
312665062
Returns: "NO"
817843749
0
0
Returns: "YES"
95
674172982
-56560424
Returns: "NO"
86
0
0
Returns: "YES"
44
0
0
Returns: "YES"
41
-814680773
-848463431
Returns: "YES"
13
959649524
-945200693
Returns: "YES"
78
0
0
Returns: "YES"
61
362406214
236313467
Returns: "YES"
17
-389230929
-783906988
Returns: "YES"
91
-563581813
-269489479
Returns: "NO"
19
0
0
Returns: "YES"
34
-310825858
-501694713
Returns: "NO"
60
0
0
Returns: "YES"
40
439958574
-337131708
Returns: "NO"
62
-46226775
607201139
Returns: "NO"
36
-889784838
514192854
Returns: "YES"
8
621751804
-25664498
Returns: "NO"
72
-295892286
747464298
Returns: "YES"
18
412739457
-647544482
Returns: "NO"
83
0
0
Returns: "YES"
67
856515253
-115875378
Returns: "NO"
3
0
0
Returns: "YES"
98
14
7
Returns: "NO"
10
1
0
Returns: "NO"
1
1
1
Returns: "YES"