우리가 자라는 나무에는 자라는 방식을 정의하는 몇 가지 규칙이 있습니다.
성장 규칙 :
- 나무는 가지로만 구성됩니다.
- 지점은 다음과 같은 기호의 조합으로 구성되어있다 :
_
,\
,|
,/
,_
나무
|
는지면 에서 단일 수직 분기 / 트렁크 ( )로 시작합니다 (_
).__________________|___________________
가지 성장을위한 음식은 빛에서 비롯됩니다.
- 하늘의 각 지점에서 빛의 강도가 2로 시작하여 아래로 직진합니다.
- 각 가지는 사용할 수있는 빛의 절반을 먹을 수 있고 나머지는 아래쪽 가지로 통과합니다.
- 따라서, 그 위에 다른 가지가없는 지점은 계절마다 1 단위의 가벼운 음식을 얻을 것이고, 그 위에 1 개의 가지가있는 가지는 계절마다 .5 단위의 음식을 얻을 것이며, 일반적으로 n 개의 가지가있는 가지는 계절마다 1 / (2 ^ n) 단위의 음식.
- 매 시즌이 끝날 때, 음식은 줄기부터 시작하여 위로 올라가 새 가지와 과일로 전환됩니다 (가지가 과일로 변하거나 1 단위 미만의 음식이 남을 때까지 다음 규칙을 적용하십시오).
- 한 시즌이 끝나는 지점에 식품이 1 단위 미만인 경우 해당 지점의 모든 음식은 다음 시즌까지 해당 지점에 저장됩니다.
- 지사가 1 단위 이상의 음식을 가지고 자랄 여지가있는 경우, 가용 한 성장 패턴 (아래 참조)을 사용하여 새 가지를 무작위로 재배하고 다음 시즌에 남은 음식을 저장합니다.
- 지점에 1 개 이상의 식품 단위가 있고, 아무데도 자라지 않으며, 가지를 뿌린 가지가 있으면, 그 가지를 가지런 히 가지지 않은 곳으로 균등하게 분배합니다.
- 지점에 식품의 단위가 1보다 크거나 같고 아무데도 자라지 않으며 파생물이 없으면 과일이됩니다 (로
O
표시됨)
- 가능한 성장 구성은 다음과 같습니다.
성장 구성 :
_ \ | / _ _ \ | / \ | / _
| | | | | \ \ \ \ / / / / __ \_ |_ _| _/ __
--- Vertical Branches --- --- Diagonal Branches --- --- Horizontal Branches ---
잠재적 트리 예 :
\
/ /
\/O |___//
\_/ \//O\_/
\__/|\|_/
\|/
__________________|__________________
입력:
프로그램은보고자하는 트리의 스냅 샷 목록을 입력으로 사용할 수 있어야합니다. 예를 들어 [10,20,50]은 10 시즌, 20 시즌 및 50 시즌 후에 나무를보고 싶다는 의미입니다.
산출:
각 입력 시즌마다 프로그램에서 시즌을 출력 한 다음 해당 시즌의 트리 그림을 출력해야합니다. 도움이되는 경우 나무의 최대 수명 (예 : 60)을 정의하여 나무의 최대 높이가 61이되고 최대 너비가 121이되도록 한 다음 항상 해당 스케일에 나무를 표시하십시오. 그렇지 않으면 이미지를 원하는 크기의 나무에 맞게 조정하십시오. 예를 들어 입력이 [0,1,2,3] 인 경우 출력은 다음과 같습니다.
Season 0:
_|_
Season 1:
\
__|__
Season 2:
_
\|
___|___
Season 3:
|_/ _
\|
____|___
우승자
각 솔루션은 [10,40]
소스 코드와 함께의 입력으로 코더가 선호하는 프로그램 실행 결과를 게시해야합니다 . 또한 자격을 갖추려면 위의 모든 기준을 충족해야합니다.
우승자는 가장 많은 표를 얻은 예선입니다.
행운과 메리 심기!