Biorąc pod uwagę listę odległości dołków, rozmiarów zielonych, kąta przekroju i maksymalnej odległości, oblicz wynik golfowy .
Założenia
- Ziemia jest płaska
- Wszystkie warzywa są okrągłe
- Kąt plastra będzie wynosił od -45 do 45 stopni i będzie podawany w stopniach
- Wszystkie odległości w tej samej metryki (jardy lub metry, nie ma znaczenia)
- Żadnych ograniczeń, przeszkód i doglegów
- Maksymalny wynik na dowolnym dołku wynosi 8
- Wszystkie strzały pokonują mniejszą maksymalną odległość lub odległość do otworu w kierunku określonym przez kąt do otworu powiększony o kąt przekroju.
- Odległość jest mierzona jako linia prosta lub odległość euklidesowa między punktem początkowym i końcowym.
- Maksymalna odległość i kąt przekroju są takie same dla wszystkich strzałów na wszystkich otworach
- Golfista zawsze stawia dwa razy jeden raz na zielonym (lub dokładnie na brzegu zielonym).
Przykład
Spójrzmy na hakera z przypadku testowego nr 5 poniżej dla dziury nr 2. Haker może uderzyć piłkę 320 jardów, ale zawsze kroi 30 stopni. Jeśli założymy bez utraty ogólności, że tee box znajduje się w {0,0}, a green w {497,0}, wtedy trafi strzały w następujące punkty, osiągając zielony z siódmym strzałem:
{{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}}
W tym momencie jego wynik wyniósłby 9 z powodu wymaganych dwóch puttów, więc ostateczny wynik dla niego zostaje ograniczony do 8, zgodnie z założeniami.
Graficznie będzie to wyglądać tak:
Przypadki testowe
Wszystkie przypadki testowe mają standardowe kursy 18-dołkowe
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
Zasady
- Do wprowadzenia można użyć dowolnego formatu. Dane wyjściowe to po prostu liczba symulowanych pociągnięć, więc powinna być liczbą całkowitą.
- To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach. Obowiązują standardowe luki.
MaxDistance
dołku?
GreenDiameter/2
, w którym to przypadku tak, ponieważ wynik jest ograniczony do 8 i zawsze są 2 putty.