그릇의 부피와 물의 부피를 입력으로 받아 원하는 부피의 물이 담긴 그릇의 ASCII 표현을 출력하거나 반환하는 프로그램이나 함수를 작성해야합니다.
그릇의 구조는 다음과 같습니다.
\ /
\___/
그릇에는 하나 이상의 _
문자가 있습니다. 의 수 \
의 및 /
의도 긍정적 이들은 대칭으로 인해 동일하다.
그릇의 부피는 전체의 번호 _
와 space
사이 문자 \
의와 /
의 플러스의 모든 쌍에 대해 하나의 \
과 /
. 이것은 위 그릇의 부피가 10
다음을 의미합니다 .
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
두 개의 다른 보울의 부피가 동일 할 수 있습니다. 예를 들어 다음 두 그릇의 부피는 18입니다.
\ /
\ / \ /
\___/ \_______/
우리는 그릇에 물을 부을 수 있습니다. 물은 ~
그릇 안에 공백 대신 문자 행으로 표시됩니다 . 맨 아래 행에는 공백이 없으므로의를 포함 할 수 없습니다 ~
. 이것은 우리의 예가 한 가지 방법으로 만 물로 채워질 수 있음을 의미합니다.
\~~~~~/
\___/
다른 그릇은 여러 가지 방법으로 채울 수 있습니다.
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
그릇에 물 양은 그릇 행의 볼륨 아래~
문자. 상기 예는 4, 6 and 2
각각 물 부피를 갖는다.
입력
- 두 개의 양의 정수, 보울의 부피와 물의 부피.
- 두 숫자의 순서를 선택할 수 있습니다.
- 두 정수는 공통리스트 형식 (목록, 튜플, 배열 등) 또는 두 개의 개별 정수로 입력 할 수 있습니다.
- 입력 값에 대해 하나 이상의 유효한 보울 워터 구성이 보장됩니다.
산출
- 보울과 수량이 입력과 일치하는 물이있는 보울의 ASCII 표현입니다.
- 인쇄 대신 결과를 반환하도록 선택한 경우 단일 문자열 (또는 해당 언어의 가장 가까운 대안)로 반환해야합니다.
- 후행 공백이 허용됩니다.
- 불필요한 선행 공백은 허용되지 않습니다.
- 올바른 구성이 여러 개인 경우 출력 할 구성을 자유롭게 선택할 수 있지만 그 중 하나만 출력 할 수 있습니다.
예
각 입력 정수 쌍 뒤에는 하나 이상의 가능한 출력이옵니다.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
이것은 코드 골프이므로 가장 짧은 참가작이 승리합니다.