Bạn nên viết một chương trình hoặc chức năng nhận thể tích của một cái bát và thể tích nước trong đó làm đầu vào và đầu ra hoặc trả về một đại diện ASCII của một cái bát có nước trong đó với các thể tích mong muốn.
Một cái bát có cấu trúc như sau:
\ /
\___/
Cái bát có ít nhất một _
ký tự. Số lượng của \
và /
cũng là dương và chúng bằng nhau do tính đối xứng.
Âm lượng của bát là tổng số _
và space
ký tự giữa \
's và /
' cộng với một cho mỗi cặp \
và /
. Điều này có nghĩa là bát trên có khối lượng 10
:
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
Lưu ý rằng hai bát khác nhau có thể có cùng một thể tích. Ví dụ: cả hai bát sau có thể tích 18:
\ /
\ / \ /
\___/ \_______/
Chúng ta có thể đổ một ít nước vào bát. Nước được thể hiện dưới dạng một hàng ~
ký tự thay vì khoảng trắng bên trong bát. Hàng dưới cùng không có khoảng trắng nên không thể chứa ~
's. Điều này có nghĩa là ví dụ của chúng ta có thể được đổ đầy nước chỉ bằng một cách:
\~~~~~/
\___/
Các bát khác có thể được điền theo nhiều cách:
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
Thể tích của nước trong một cái bát là thể tích của các hàng bát bên dưới các ~
ký tự. Các ví dụ trên có lượng nước 4, 6 and 2
tương ứng.
Đầu vào
- Hai số nguyên dương, thể tích của bát và thể tích của nước.
- Bạn có thể chọn thứ tự của hai số.
- Hai số nguyên có thể được nhập vào trong bất kỳ định dạng danh sách chung nào (danh sách, bộ dữ liệu, mảng, v.v.) hoặc dưới dạng hai số nguyên riêng biệt.
- Ít nhất một cấu hình bát nước hợp lệ được đảm bảo cho các giá trị đầu vào.
Đầu ra
- Biểu diễn ASCII của một bát có nước trong đó bát và thể tích nước khớp với đầu vào.
- Nếu bạn chọn trả về kết quả thay vì in, nó sẽ được trả về dưới dạng một chuỗi (hoặc thay thế gần nhất với ngôn ngữ của bạn).
- Bất kỳ khoảng trắng dấu vết được cho phép.
- Không có khoảng trắng hàng đầu không cần thiết được cho phép.
- Nếu có nhiều cấu hình chính xác, bạn có thể tự do chọn cái nào bạn xuất nhưng bạn chỉ có thể xuất một trong số chúng.
Ví dụ
Mỗi cặp số nguyên đầu vào được theo sau bởi một hoặc nhiều đầu ra có thể.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
Đây là mã golf nên mục ngắn nhất sẽ thắng.