穴のヤード、グリーンサイズ、スライス角度、最大距離のリストが与えられたら、ゴルフスコアを計算します。
仮定
- 地球は平らです
- すべてのグリーンは円形です
- スライス角度は-45〜45度で、度単位で指定されます
- 同じメトリック内のすべての距離(ヤードまたはメートル、重要ではありません)
- アウトオブバウンズ、障害物、ドッグレッグはありません
- 穴の最大スコアは8
- すべてのショットは、最大距離またはホールまでの距離のうち、ホールへの角度とスライス角度で定義される方向の小さい方を移動します。
- 距離は、始点と終点の間の直線またはユークリッド距離として測定されます。
- 最大距離とスライス角度は、すべての穴のすべてのショットで同じです
- ゴルファーは常にグリーンで2パット(またはグリーンの端)を常に1回パットします。
例
ホール2については、以下のテストケース5のハッカーを見てみましょう。ハッカーはボールを320ヤード打撃できますが、常に30度スライスします。一般性を失うことなく、ティーボックスが{0,0}にあり、グリーンが{497,0}にあると仮定すると、彼は次のポイントまでショットをヒットし、7番目のショットでグリーンに到達します。
{{0.,0.},{277.128,-160.},{547.543,-131.372},{569.457,7.67088},{502.872,37.2564},{479.159,7.92741},{490.646,-7.85868},{500.078,-4.22987}}
この時点で、2つのパットが必要なため、彼のスコアは9になります。したがって、彼の最終スコアは、仮定により8に制限されます。
テストケース
すべてのテストケースには、標準の18ホールコースがあります
Case#1
{MaxDistance->280,SliceAngle->10,HoleDistances->{181,368,161,416,158,526,377,427,509,148,405,443,510,494,396,388,483,172},GreenDiameters->{26,18,17,23,27,23,21,23,25,21,19,24,21,23,25,24,22,22}}
Scores:
{4,5,4,5,4,5,5,5,5,4,5,5,5,5,5,5,5,4}
Output: 85
Case#2 (same course as Test Case #1, shorter more accurate golfer)
{MaxDistance->180,SliceAngle->5,HoleDistances->{181,368,161,416,158,526,377,427,509,148,405,443,510,494,396,388,483,172},GreenDiameters->{26,18,17,23,27,23,21,23,25,21,19,24,21,23,25,24,22,22}}
Scores:
{4,5,4,5,4,6,5,5,6,4,5,5,6,6,5,5,5,4}
Output: 89
Case#3 (Same golfer as test case #1, shorter course)
{MaxDistance->280,SliceAngle->10,HoleDistances->{147,497,110,528,409,118,196,154,134,514,374,491,131,138,523,478,481,494},GreenDiameters->{32,16,36,25,32,20,30,30,33,29,25,26,26,25,33,28,21,28}}
Scores:
{4,5,4,5,5,4,4,4,4,5,5,5,4,4,5,5,5,5}
Output: 82
Case#4 (Same course as test case #3)
{MaxDistance->180,SliceAngle->5,HoleDistances->{147,497,110,528,409,118,196,154,134,514,374,491,131,138,523,478,481,494},GreenDiameters->{32,16,36,25,32,20,30,30,33,29,25,26,26,25,33,28,21,28}}
Scores:
{3,6,3,6,5,4,4,3,3,5,5,5,3,3,5,5,6,5}
Output: 79
Case#5 (Hacker)
{MaxDistance->320,SliceAngle->30,HoleDistances->{147,497,110,528,409,118,196,154,134,514,374,491,131,138,523,478,481,494},GreenDiameters->{32,16,36,25,32,20,30,30,33,29,25,26,26,25,33,28,21,28}}
Scores:
{6,8,5,8,7,6,6,6,6,8,8,8,6,6,8,8,8,8}
Output: 126
ルール
- 入力には任意の形式を使用できます。出力は、シミュレートされたストロークの数であるため、整数である必要があります。
- これはコードゴルフなので、バイト単位の最短回答が勝ちです。標準の抜け穴が適用されます。
MaxDistanceホール内に入れるのに6ショット以上かかることはないと想定できますか?
GreenDiameter/2、その場合はそうだと思います。スコアは8に制限されており、常に2つのパットがあります。

