αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„ TopCoder Open 2019αŸ– αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€

αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„ TopCoder Open 2019αŸ– αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€
αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž”αŸ„αŸ‡β€‹αž‡αŸ†αž αžΆαž“β€‹ "αžšαž”αžŸαŸ‹αž™αžΎαž„αž”αžΆαž“αžˆαŸ’αž“αŸ‡: TopCoder Open 2019" αžαŸ’αž‰αž»αŸ†αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αž”αž‰αŸ’αž αžΆαž–αžΈαž”αž‘ Algorithm (αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αžΈαž‘αžΆαž”αž»αžšαžΆαžŽαŸ” αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž˜αž½αž™αž˜αŸ‰αŸ„αž„αž€αž“αŸ’αž›αŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž”αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ Java, C#, C++ ឬ PythonαŸ”)

1. αž…αŸ†αžŽαž·αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž”αž‰αŸ’αž αžΆ

αž–αŸαž›αžœαŸαž›αžΆαž€αŸ†αžŽαžαŸ‹αž‚αžΊ 4 αžœαž·αž“αžΆαž‘αžΈαŸ”

αž’αŸ’αž“αž€αž˜αžΆαž“αž“αŸ†αž˜αž½αž™αŸ” αž“αŸ…αž–αŸαž›αž˜αžΎαž›αž–αžΈαžαžΆαž„αž›αžΎ αž“αŸ†αž“αŸαŸ‡αž˜αžΆαž“αžšαžΆαž„αž‡αžΆαž–αž αž»αž€αŸ„αžŽαž”αŸ‰αŸ„αž„ (αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„)αŸ” αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž•αŸ’αžŠαž›αŸ‹β€‹αž€αžΌαž’αžšαžŠαŸ„αž“αŸβ€‹αž“αŸƒβ€‹αž…αŸ†αžŽαž»αž…β€‹αž€αŸ†αž–αžΌαž›β€‹αž€αŸ’αž“αž»αž„β€‹αž…αŸ†αž“αž½αž“ X αž“αž·αž„ Y αŸ”

αž’αŸ’αž“αž€αž˜αžΆαž“αž˜αž·αžαŸ’αžαž”αŸ’αžšαžΆαŸ†αž“αžΆαž€αŸ‹αŸ” αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αŸ‚αž„αž…αŸ‚αž€αž…αŸ†αžŽαž·αžαž‘αŸ…αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€αž“αŸƒαž•αŸ’αž‘αŸƒαžŠαžΈαžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆ (αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αžΆαž“αžšαžΆαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ) αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž…αž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“ XNUMX αžŠαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž‘αŸαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“αž”αžΈαžŠαž„αŸ”

αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαž€αžΆαžαŸ‹αž…αŸ†αž“αž½αž“αž”αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαŸ’αžšαž„αŸ‹αžαžΆαž˜αžšαž™αŸˆαž…αŸ†αžŽαž»αž…αž˜αž½αž™αžŠαŸ‚αž›αž“αžΉαž„αž”αŸ‚αž„αž…αŸ‚αž€αž…αŸ†αžŽαž·αžαž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆαŸ” αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž– {x, y, d1, d2, d3} αžŠαŸ‚αž› (x, y) αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αž‘αžΌαž‘αŸ…αž“αŸƒαž€αžΆαžšαž€αžΆαžαŸ‹αž‘αžΆαŸ†αž„αž”αžΈ αž αžΎαž™ d1, d2, d3 αž‚αžΊαž‡αžΆαž˜αž»αŸ†αž‘αž·αžŸαžŠαŸ…αž“αŸƒαž€αžΆαžšαž€αžΆαžαŸ‹αž‡αžΆαžšαŸ‰αžΆαžŠαŸ’αž™αž„αŸ‹αŸ”

αž“αž·αž™αž˜αž“αŸαž™αžαŸ’αž“αžΆαž€αŸ‹αŸ– CakeForSix
αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž: αž€αžΆαžαŸ‹
αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαŸ– int[], int[] αžαŸ’αžšαž‘αž”αŸ‹αŸ– αž‘αŸ’αžœαŸ[] αž αžαŸ’αžαž›αŸαžαžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαŸ– αž‘αŸ’αžœαŸ[] αž€αžΆαžαŸ‹(int[] x, int[] y)
(αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαžŸαžΆαž’αžΆαžšαžŽαŸˆ)

αž…αŸ†αžŽαžΆαŸ†

  • αž‘αž·αžŸαžŠαŸ…αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžαžΆαž˜αž’αŸαž€αŸ’αžŸ x αž‚αžΊ 0 (αžšαŸ‰αžΆαžŠαŸ’αž™αž„αŸ‹) αž‘αž·αžŸαžŠαŸ…αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžαžΆαž˜αž’αŸαž€αŸ’αžŸ y αž‚αžΊ pi/2 (αžšαŸ‰αžΆαžŠαŸ’αž™αž„αŸ‹) αŸ”
  • αž€αžΆαžšαž€αžΆαžαŸ‹αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ… d αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž“αžΉαž„αž€αžΆαžšαž€αžΆαžαŸ‹αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ… pi*k+d αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αž‚αžαŸ‹ k αŸ”
  • αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž…αŸαž‰αž‘αž·αžŸαžŠαŸ…αžŽαžΆαž˜αž½αž™ αž–αž½αž€αž‚αŸαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αž€αž–αžΈ [0, pi)αŸ”
  • αžαŸ’αž“αžΆαž€αŸ‹αž“αžΉαž„αž‚αžŽαž“αžΆαž•αŸ’αž‘αŸƒαžŠαžΈαž“αŸƒαž“αŸ†αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž–αžΈαžšαŸ” αž…αž˜αŸ’αž›αžΎαž™β€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‘αž‘αž½αž›β€‹αž™αž€β€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αž—αžΆαž–β€‹αžαž»αžŸβ€‹αž‚αŸ’αž“αžΆβ€‹αžŠαŸ‚αž›β€‹αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž¬β€‹αžŠαžΆαž…αŸ‹β€‹αžαžΆαžβ€‹αžšαžœαžΆαž„β€‹αž–αž½αž€β€‹αžœαžΆβ€‹αž‚αžΊβ€‹αžαž·αž…β€‹αž‡αžΆαž„ 10^(-4)αŸ”
  • αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ X αž“αž·αž„ Y αž‡αžΆαž‘αŸ†αž αŸ†αžαžΌαž…αž”αŸ†αž•αž»αž αž“αž·αž„αž’αŸ†αž”αŸ†αž•αž»αžαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžαŸ†αž”αž“αŸ‹αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαŸ‚αž›αž‚αžŽαž“αžΆαžŠαŸ„αž™αžŸαž·αžŸαŸ’αžŸαžαŸ’αž“αžΆαž€αŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž…αž˜αŸ’αž›αžΎαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Y
  • (αž€αŸ†αžŽαŸ‚αžŠαžΎαž˜αž“αŸƒαž”αž‰αŸ’αž αžΆαž”αžΆαž“αž”αŸ’αžšαžΎαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒ 1e-7 αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ 1e-4αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸαžŽαŸ’αžŽαžŸαžΆαžš αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αž‘αžΆαž” αžŠαŸ„αž™αžŸαžΆαžšαžœαžαŸ’αžαž˜αžΆαž“αž“αŸƒαž€αžšαžŽαžΈαž αŸ…αž‘αžΌαžšαžŸαž–αŸ’αž‘αžŠαŸ‚αž›αž‘αŸ†αž“αž„αž‡αžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž”αž‰αŸ’αž αžΆαž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ” αž“αŸƒ 1e-7 αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž§αžαŸ’αžαž˜αž‚αžαž· αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž˜αžΆαž“αž€αžšαžŽαžΈαž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸ αž αžΎαž™αž“αŸ…αžαŸ‚αž‘αžΆαž˜αž‘αžΆαžšαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžαŸ’αž–αžŸαŸ‹ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž›αŸαžαž‘αžΌαž‘αŸ…αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‚αžΊαž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸ„αŸ‡αž‘αŸαŸ”)

αž€αžΆαžšαžšαžΉαžαžαŸ’αž”αž·αž

  • x αž˜αžΆαž“αž’αžΆαžαž»αž–αžΈ 3 αž‘αŸ… 50 αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αŸ”
  • y αž˜αžΆαž“β€‹αž…αŸ†αž“αž½αž“β€‹αž’αžΆαžαž»β€‹αžŠαžΌαž…αž‚αŸ’αž“αžΆβ€‹αž“αžΉαž„ x αŸ”
  • αž€αžΌαž’αžšαžŠαŸ„αž“αŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαžœαžΆαž„ 0 αž“αž·αž„ 10 αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›
  • x αž“αž·αž„ y αž€αŸ†αžŽαžαŸ‹αž–αž αž»αž€αŸ„αžŽαž”αŸ‰αŸ„αž„αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ…αž…αŸ’αžšαžΆαžŸαž‘αŸ’αžšαž“αž·αž…αž“αžΆαž‘αž·αž€αžΆαŸ”

αžŠαžΎαž˜αž‡αžΆαž—αžΆαžŸαžΆαž’αž„αŸ‹αž‚αŸ’αž›αŸαžŸ

αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαž”αž‰αŸ’αž αžΆαŸ”

αž–αŸαž›αžœαŸαž›αžΆαž€αŸ†αžŽαžαŸ‹αž‚αžΊ 4 αžœαž·αž“αžΆαž‘αžΈαŸ”

αž’αŸ’αž“αž€αž˜αžΆαž“αž“αŸ†αžαŸαž€αž˜αž½αž™αŸ” αžƒαžΎαž‰αž–αžΈαžαžΆαž„αž›αžΎ αž“αŸ†αž‚αžΊαž‡αžΆαž–αž αž»αž€αŸ„αžŽαž”αŸ‰αŸ„αž„ (αž™αŸ‰αžΆαž„αžαžΉαž„αžšαŸ‰αžΉαž„)αŸ” αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž€αžΌαž’αžšαžŠαŸ„αž“αŸαž“αŸƒαž…αŸ†αž“αž»αž…αž€αŸ†αž–αžΌαž›αžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ int[]sx αž“αž·αž„ y αŸ”

αž’αŸ’αž“αž€αž˜αžΆαž“αž˜αž·αžαŸ’αžαž”αŸ’αžšαžΆαŸ†αž“αžΆαž€αŸ‹αŸ” αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡ αž’αŸ’αž“αž€β€‹αž…αž„αŸ‹β€‹αž€αžΆαžαŸ‹β€‹αž“αŸ†β€‹αž‡αžΆβ€‹αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™β€‹αž”αŸ†αžŽαŸ‚αž€β€‹αž“αŸƒβ€‹αž•αŸ’αž‘αŸƒβ€‹αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆ (αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž…αžΆαŸ†β€‹αž”αžΆαž…αŸ‹β€‹αž˜αžΆαž“β€‹αžšαžΆαž„β€‹αžŸαŸ’αž˜αžΎβ€‹αž‚αŸ’αž“αžΆβ€‹αž‘αŸ)αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž…αž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαžΆαŸ†αžŠαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“αž”αžΈαžŠαž„!

αžŸαŸ’αžœαŸ‚αž„αžšαž€αž€αžΆαžšαž€αžΆαžαŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαŸ’αžšαž„αŸ‹αž…αŸ†αž“αž½αž“αž”αžΈαž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž…αŸ†αžŽαž»αž…αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αž’αŸ†αžŸαŸ’αž˜αžΎαž‚αŸ’αž“αžΆαŸ” αžαŸ’αžšαž‘αž”αŸ‹ {x, y, d1, d2, d3} αžŠαŸ‚αž› (x, y) αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αžšαž½αž˜αž“αŸƒαž€αžΆαžšαž€αžΆαžαŸ‹αž‘αžΆαŸ†αž„αž”αžΈ αž αžΎαž™ d1, d2, d3 αž‚αžΊαž‡αžΆαž‘αž·αžŸαžŠαŸ…αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž‡αžΆαžšαŸ‰αžΆαžŠαŸ’αž™αž„αŸ‹αŸ”

αž“αž·αž™αž˜αž“αŸαž™

αžαŸ’αž“αžΆαž€αŸ‹αŸ– CakeForSix
αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž: αž€αžΆαžαŸ‹
αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαŸ– int[], int[] αžαŸ’αžšαž‘αž”αŸ‹αŸ– αž‘αŸ’αžœαŸ[] αž αžαŸ’αžαž›αŸαžαžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαŸ– αž‘αŸ’αžœαŸ[] αž€αžΆαžαŸ‹(int[] x, int[] y)
(αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαžŸαžΆαž’αžΆαžšαžŽαŸˆ)

αž—αž€αŸ’αžŠαž·αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž€αŸ†αžŽαžαŸ‹
- αž‘αž·αžŸαžŠαŸ…αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžαžΆαž˜αž’αŸαž€αŸ’αžŸ x αž‚αžΊ 0 (αžšαŸ‰αžΆαžŠαŸ’αž™αž„αŸ‹) αž‘αž·αžŸαžŠαŸ…αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αžαžΆαž˜αž’αŸαž€αŸ’αžŸ y αž‚αžΊ pi/2 (αžšαŸ‰αžΆαžŠαŸ’αž™αž„αŸ‹) αŸ”
- αž€αžΆαžšαž€αžΆαžαŸ‹αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ… d αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž€αžΆαžšαž€αžΆαžαŸ‹αž€αŸ’αž“αž»αž„αž‘αž·αžŸαžŠαŸ… pi*k+d αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αž‚αžαŸ‹ k αŸ”
- αž’αŸ’αž“αž€αž’αžΆαž…αžαŸ’αžšαž‘αž”αŸ‹αž‘αž·αžŸαžŠαŸ…αžŽαžΆαž˜αž½αž™ αž–αž½αž€αž‚αŸαž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αž€αž–αžΈ [0,pi)αŸ”
- αžŸαž·αžŸαŸ’αžŸαž“αžΉαž„αž‚αžŽαž“αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž“αŸ†αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‡αžΆαž–αžΈαžšαŸ” αž…αž˜αŸ’αž›αžΎαž™β€‹αž“αžΉαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‘αž‘αž½αž›β€‹αž™αž€β€‹αž”αŸ’αžšαžŸαž·αž“β€‹αž”αžΎβ€‹αž—αžΆαž–β€‹αžαž»αžŸβ€‹αž‚αŸ’αž“αžΆβ€‹αžŠαŸ‚αž›β€‹αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž¬β€‹αžŠαžΆαž…αŸ‹β€‹αžαžΆαžβ€‹αžšαžœαžΆαž„β€‹αž–αž½αž€β€‹αžœαžΆβ€‹αž‚αžΊβ€‹αžαž·αž…β€‹αž‡αžΆαž„ 10^(-4)αŸ”
- αž…αŸ’αž”αžΆαžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αžŸαžΌαž˜αž²αŸ’αž™ X αž“αž·αž„ Y αž‡αžΆαž‘αŸ†αž αŸ†αžαžΌαž…αž”αŸ†αž•αž»αž αž“αž·αž„αž’αŸ†αž”αŸ†αž•αž»αžαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžαŸ†αž”αž“αŸ‹αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž‚αžŽαž“αžΆαžŠαŸ„αž™αžŸαž·αžŸαŸ’αžŸαžαŸ’αž“αžΆαž€αŸ‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž…αž˜αŸ’αž›αžΎαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€ αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Y < max( X + 10^(-4), X * (1+10^(-4)))αŸ”
β€” (αž€αŸ†αžŽαŸ‚αžŠαžΎαž˜αž“αŸƒαž”αž‰αŸ’αž αžΆαž”αžΆαž“αž”αŸ’αžšαžΎαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ 1e-7 αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ 1e-4αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸαžŽαŸ’αžŽαžŸαžΆαžš αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αž‘αžΆαž”αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž’αžαŸ’αžαž·αž—αžΆαž–αž“αŸƒαž€αžšαžŽαžΈαž”αŸ’αžšαžˆαž˜αžŠαŸ‚αž›αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‘αŸ†αž“αž„αž‡αžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž€αž·αž…αŸ’αž…αž€αžΆαžšαž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ 1e-7 αž“αŸ…αž€αŸ’αž“αž»αž„αž–αž·αž—αž–αž§αžαŸ’αžαž˜αž‚αžαž· αž§αž”αžŸαž‚αŸ’αž‚αž“αžΉαž„αž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž€αžšαžŽαžΈαž”αŸ‚αž”αž“αŸαŸ‡αž‘αŸ αž αžΎαž™αž“αŸ…αžαŸ‚αž‘αžΆαž˜αž‘αžΆαžšαž—αžΆαž–αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžαŸ’αž–αžŸαŸ‹ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž˜αž·αž“αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž›αŸαžαž‘αžΌαž‘αŸ…αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” )

αž§αž”αžŸαž‚αŸ’αž‚αŸ”
- x αž“αžΉαž„αž˜αžΆαž“αž’αžΆαžαž»αž–αžΈ 3 αž‘αŸ… 50 αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αŸ”
- y αž“αžΉαž„αž˜αžΆαž“αž…αŸ†αž“αž½αž“αž’αžΆαžαž»αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„ x αŸ”
- αž€αžΌαž’αžšαžŠαŸ„αž“αŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αžŸαŸ’αžαž·αžαž“αŸ…αž…αž“αŸ’αž›αŸ„αŸ‡αž–αžΈ 0 αž‘αŸ… 10,000 αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αŸ”
β€” x αž“αž·αž„ y αž“αžΉαž„β€‹αž–αžŽαŸŒαž“αžΆβ€‹αž–αž αž»αž€αŸ„αžŽβ€‹αž”αŸ‰αŸ„αž„β€‹αžαžΆαž˜β€‹αž›αŸ†αžŠαžΆαž”αŸ‹β€‹αž…αŸ’αžšαžΆαžŸαž‘αŸ’αžšαž“αž·αž…β€‹αž“αžΆαž‘αž·αž€αžΆαŸ”

αž§αž‘αž αžšαžŽαŸ

0)

{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
αžαŸ’αžšαž‘αž”αŸ‹αŸ–
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }

αž†αž€αŸ„αž“β€‹αžŠαŸ‚αž›β€‹αžŸαŸŠαžΈαž˜αŸαž‘αŸ’αžšαžΈβ€‹αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž‘αŸ€αž„αž‘αžΆαžαŸ‹αŸ” αž…αž˜αŸ’αž›αžΎαž™αž§αž‘αžΆαž αžšαžŽαŸαžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž€αžΆαžαŸ‹αžœαžΆαž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž•αŸ’αžŠαŸαž€ αž αžΎαž™αž€αžΆαžαŸ‹αž•αŸ’αž“αŸ‚αž€αž€αžŽαŸ’αžαžΆαž›αž–αžΈαžšαž‘αŸ€αžαžŠαŸ‚αž›αž”αŸ‚αž„αž…αŸ‚αž€αž•αŸ’αž“αŸ‚αž€αž“αžΈαž˜αž½αž™αŸ—αž‡αžΆαž”αžΈαž•αŸ’αž“αŸ‚αž€αŸ”

αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„ TopCoder Open 2019αŸ– αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€

1)

{៧, ៨, ៩}
{៧, ៨, ៩}
αžαŸ’αžšαž‘αž”αŸ‹αŸ–
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }

αžαŸ’αžšαžΈαž€αŸ„αžŽαž€αŸ‚αž„αŸ” αž‡αžΆαžαŸ’αž˜αžΈαž˜αŸ’αžαž„αž‘αŸ€αžαž™αžΎαž„αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž€αžΆαžαŸ‹αž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž”αžΈαž€αžΆαžαŸ‹αžαžΆαž˜αž’αŸαž€αŸ’αžŸαžŸαŸŠαžΈαž˜αŸαž‘αŸ’αžšαžΈαŸ”

αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„ TopCoder Open 2019αŸ– αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€

2)

{αŸ₯០, αŸ₯០, αŸ₯០, ០, ០}
{αŸ₯០, αŸ₯០, αŸ₯០, ០, ០}
αžαŸ’αžšαž‘αž”αŸ‹αŸ–
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }

αž”αŸ‰αž„αŸ‹αžαžΆαž αŸ’αž‚αŸ„αž“αž˜αž·αž“αž‘αŸ€αž„αž‘αžΆαžαŸ‹αŸ”

αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„ TopCoder Open 2019αŸ– αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€

3)

{៑០.០, ្αŸ₯.០, ៀαŸ₯.០, ៧០.០}
{៑០.០, ្αŸ₯.០, ៀαŸ₯.០, ៧០.០}
αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αŸ– {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705 }

αž€αžΆαžšαŸ‰αŸαž˜αž½αž™αž”αž„αŸ’αžœαž·αž› 45 αžŠαžΊαž€αŸ’αžšαŸαŸ”

αž€αžΆαžšαž”αŸ’αžšαž€αž½αžαž”αŸ’αžšαž‡αŸ‚αž„ TopCoder Open 2019αŸ– αž€αžΆαžαŸ‹αž“αŸ†αž‡αžΆαž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αž”αŸ†αžŽαŸ‚αž€

[αž”αŸ’αžšαž—αž–]

αž˜αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž“αŸαŸ‡αŸ” αž…αžΌαž›αžŸαžΌαž˜αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹

  • αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαž·αž…αž‡αžΆαž„ αŸ₯ αž“αžΆαž‘αžΈ

  • 10-30 αž“αžΆαž‘αžΈ

  • 30-60 αž“αžΆαž‘αžΈ

  • 1-2 αž˜αŸ‰αŸ„αž„

  • αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž„ 2 αž˜αŸ‰αŸ„αž„αŸ”

  • αž•αŸ’αžŸαŸαž„αž‘αŸ€αž

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 42 αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ ៧៨ αž“αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹