배경
몇 달 전, 당신의 인생의 모험은 막 시작되었습니다. 지금,이 정확한 순간에 (그래, 지금), 수개월의 고난과 노력 끝에, 여러분과 친구 그룹이 세계 정상에 서 있습니다. 네, 그렇습니다, 당신은 Sagarmāthā 의 정상에 있습니다 .
그러나 원하는대로 일이 진행되지 않습니다. 짙은 안개가 당신을 둘러싸고 있으며 엄청나게 나쁜 폭풍우가 가능한 한 빨리오고 있습니다. 도중에 밧줄을 고정하지 않았으며 발자국은 눈으로 덮여 있습니다. (적어도 오늘은) 살아남 으려면 최대한 빨리 그곳을 벗어나야하지만 먼저 산의 어느면이 내려 가야하는지 알 수있는 방법을 찾아야합니다.
운 좋게도 여행 전에 수정 한 전화 를 가져 왔 으므로 프로그램을 프로그래밍하고 실행할 수 있습니다.
도전
당신은 당신의 전화로 ASCII 구식의 읽을 수없는 세계 최고 방식으로 산의지도를 다운로드 할 수있었습니다. 당신의 임무는 생존 가능성을 높일 수 있도록 가장 쉬운 하강을 제공하는 산의 얼굴을 결정하는 것입니다. 그렇게하기 위해 가장 쉬운 방법을 알려주는 프로그램을 휴대 전화에서 코딩하는 훌륭한 아이디어가 있습니다. (면책 조항 : 이러한 활동은 전문가에 의해 수행되었습니다.이 나레이션 중에는 프로그래머가 다 치지 않았습니다. 집에서 시도하지 마십시오.)
지도는 문자 /
와 \
공백 및 개행 문자로만 구성 됩니다. 어느지도에서나 산의 정상은 항상
/\
\/
그리고 정상의 각 측면 ( 1,2,3
또는 4
)에서 항상 산 아래로 "가능한"방법을 찾을 수 있습니다.
1 /\ 2
3 \/ 4
경로는 항상 다음과 같이 표시됩니다.
\
Steep-> / /
/ / <-Flat
/ \
Flat-> \ \
/ \ <-Steep
/\
\/
여기서 각 새로운 캐릭터는 전임자의 왼쪽 / 오른쪽에있는 장소입니다. 각 캐릭터의 의미는 다음과 같습니다.
- 슬래시 / 백래시가 정상 측과 평행 한 경우-> '스티프'부분으로 계산됩니다.
- 슬래시 / 백 슬래시가 서밋쪽에 수직 인 경우-> '평평한'부분으로 계산됩니다.
* 자세한 내용은 위의 그림을 참조하십시오.
참고 : 변의 길이는 다를 수 있으며 정상을 구성하는 문자도 변의 일부로 계산됩니다. 추첨의 경우, 그중 하나를 선택할 수 있습니다.
표준 허점 은 허용되지 않습니다.
입력
산의지도 또는 동일한 정보를 포함하는 일반 텍스트 파일을 나타내는 문자열입니다.
어느 한 쪽
C:\....\file.txt
또는
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
문자열은 유효한 입력입니다.
산출
출력으로, 당신은 일반 텍스트 또는하여 표준 출력 파일 중 하나를 생성해야 가장 작은 평균 경사와 측면의 ASCII 프로파일 표현을 사용하여 _
평면 부품 및 /
가파른 부품 의 평균 경사와 함께 측면의를 (number of "/")/(total chars)
.
위의지도 출력 예 :
/
___/
/
AS:0.5
프로파일과 평균 가파름이있는 한 형식은 중요하지 않습니다.
채점
뭐? 당신과 당신의 친구의 생명을 구하고 세계 최고의 프로그램을 만든 최초의 프로그래머가되는 것보다 더 나은 보상을 원하십니까? 좋아 ... 이것은 코드 골프이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다.
테스트 사례
입력:
\
/ /
/ /
/ \
\ \
/ \
/\
\/
\ /
\ \
\ \
\ \
/ /
산출:
/
___/
/
AS=0.5
입력:
/
\ /
/ /
\ /
\ /
/ /
/\
\/
\ /
\ \
\ \
\ \
/ /
/
/
산출:
______/
AS=0.143 (1/7)
입력:
/ \
\ \
/ /
/ \
/\
\/
\ /
\ /
\ /
/ \
산출:
/
/
/
_/
AS=0.8