Diberi daftar hole yardage, ukuran hijau, sudut irisan dan jarak maksimal, hitung skor golf .
Asumsi
- Bumi itu datar
- Semua sayuran berbentuk lingkaran
- Sudut irisan akan berada di antara -45 dan 45 derajat dan akan diberikan dalam derajat
- Semua jarak dalam metrik yang sama (yard atau meter, tidak masalah)
- Tidak ada batasan, penghalang atau dogleg
- Skor maksimum pada setiap hole adalah 8
- Semua bidikan bergerak lebih rendah dari jarak maks atau jarak ke lubang, dalam arah yang ditentukan oleh sudut ke lubang ditambah sudut irisan.
- Jarak diukur sebagai garis lurus atau jarak Euclidean antara titik awal dan titik akhir.
- Jarak maksimum dan sudut irisan sama untuk semua bidikan di semua lubang
- Pegolf selalu dua-putt sekali di atas hijau (atau tepat di tepi hijau).
Contoh
Mari kita lihat peretas dari test case # 5 di bawah ini untuk hole # 2. Peretas bisa memukul bola 320 yard, tetapi selalu memotong 30 derajat. Jika kita mengasumsikan tanpa kehilangan keumuman bahwa kotak tee berada di {0,0} dan hijau di {497,0}, maka dia akan memukul tembakan ke titik-titik berikut, tiba di hijau dengan tembakan ke-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}}
Pada titik ini, skornya akan menjadi 9 karena dua putt diperlukan, sehingga skor akhir untuknya akan dibatasi pada 8, sesuai asumsi.
Secara grafis, akan terlihat seperti ini:

Uji Kasus
Semua kasus uji memiliki kursus 18-lubang standar
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
Aturan
- Format apa pun dapat digunakan untuk input. Output hanyalah jumlah stroke yang disimulasikan, jadi harus berupa bilangan bulat.
- Ini adalah kode-golf sehingga jawaban tersingkat dalam byte menang. Celah standar berlaku.
MaxDistancelubang?
GreenDiameter/2, dalam hal ini ya, karena skor dibatasi pada 8 dan selalu ada 2 putt.
