Arka fon
Birkaç ay önce, hayatınızın macerası başlamak üzereydi. Şimdi, bu kesin anda (evet, şimdi), aylarca süren acı ve sıkı çalışmanın ardından, siz ve bir grup arkadaş dünyanın tepesinde duruyorsunuz. Evet haklısınız, Sagarmāthā'in zirvesindesiniz .
Ancak, işler istediğiniz kadar iyi gitmiyor. Yoğun bir sis sizi kuşattı ve inanılmaz derecede kötü görünen bir fırtına olabildiğince hızlı geliyor. Yukarı çıkarken hiçbir ipi düzeltmediniz ve ayak izleriniz karla kaplı. Hayatta kalmak istiyorsanız (en azından bugün için), olabildiğince hızlı bir şekilde oradan çıkmanız gerekiyor, ancak önce dağın hangi yüzünün inmeniz gerektiğini bilmenin bir yolunu bulmalısınız.
Neyse ki, yolculuktan önce değiştirdiğiniz uydu telefonunuzu yanınızda getirdiniz, böylece programlarınızı programlayabilir ve yürütebilirsiniz.
Meydan okuma
ASCII-eski-moda-okunamaz-dünyanın en üstünde bir şekilde dağ haritasını telefonunuza indirebilirsiniz. Göreviniz, dağın hangi yüzünün en kolay inişi sunduğuna karar vermektir, böylece hayatta kalma şansınızı artırabilirsiniz. Bunu yapmak için, telefonunuzda hangisinin en kolay yol olduğunu söyleyecek bir programı kodlamak için mükemmel bir fikriniz var. (Feragat: Bu faaliyetler profesyoneller tarafından yapılmıştır. Bu rivayet sırasında hiçbir programcı zarar görmemiştir. Lütfen bunu evde denemeyin.)
Haritalar yalnızca karakterlerden /
ve \
(artı boşluklar ve yeni satırlar) yapılır. Herhangi bir haritada, dağın zirvesi her zaman tarafından temsil edilir.
/\
\/
ve zirvenin her iki yanından ( 1,2,3
veya 4
) her zaman dağdan aşağı doğru "mümkün" bir yol bulacaksınız.
1 /\ 2
3 \/ 4
Rotalar her zaman bir sonraki şekilde sunulur:
\
Steep-> / /
/ / <-Flat
/ \
Flat-> \ \
/ \ <-Steep
/\
\/
burada her yeni karakter selefinin solunda / sağında bir yer. Her karakterin anlamı:
- Eğik çizgi / boşluk, zirve tarafına paralelse -> 'dik' bir parça olarak sayılır.
- Eğer eğik çizgi / ters eğik çizgi zirve tarafına dik ise -> 'düz' bir parça olarak sayılır.
* Daha fazla referans için yukarıdaki grafiğe bakınız.
Not : Tarafların farklı uzunlukları olabilir ve zirveyi oluşturan karakterler de taraflarının bir parçası olarak sayılır. Beraberlik durumunda, bunlardan herhangi birini seçebilirsiniz.
Standart boşluklara izin verilmez.
Giriş
Dağın haritasını temsil eden bir dize veya aynı bilgileri içeren düz bir metin dosyası.
ya
C:\....\file.txt
veya
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
dize olarak geçerli girdilerdir.
Çıktı
Çıkış olarak, bir düz metin olarak veya tarafından stdout'u bir dosya ya üretmelidir en küçük ortalama dikliği ile tarafının ASCII profil gösterimi kullanılarak _
düz parçalar için ve /
dik parçalar için ortalama dikliği ile birlikte tarafının (number of "/")/(total chars)
.
Yukarıdaki harita için çıktı örneği:
/
___/
/
AS:0.5
Profil ve ortalama dikliğe sahip olduğunuz sürece format önemli değildir.
puanlama
Ne? Arkadaşınızın ve hayatınızın kurtarılmasından ve dünyanın en üstünde programlanmış ilk programcı olmaktan daha iyi bir ödül ister misiniz? Tamam ... bu kod golfü, baytlardaki en kısa program kazanıyor.
Test senaryoları
Giriş:
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
Çıktı:
/
___/
/
AS=0.5
Giriş:
/
\ /
/ /
\ /
\ /
/ /
/\
\/
\ /
\ \
\ \
\ \
/ /
/
/
Çıktı:
______/
AS=0.143 (1/7)
Giriş:
/ \
\ \
/ /
/ \
/\
\/
\ /
\ /
\ /
/ \
Çıktı:
/
/
/
_/
AS=0.8