Ви повинні написати програму або функцію, яка отримує об’єм чаші і об’єм води в ній як вхід і вихід або повертає ASCII подання чаші з водою в ній з потрібними обсягами.
Миска має таку структуру:
\ /
\___/
Чаша має принаймні один _
символ. Кількість \
'і /
' s також позитивні і вони рівні через симетрію.
Об'єм чаші - це загальна кількість _
та space
символів між \
"і /
" плюс один для кожної пари \
та /
. Це означає, що зазначена вище чаша має об'єм 10
:
\ / => xxxxx x (the last one is for the \/ pair)
\___/ xxx x (the last one is for the \/ pair)
Зверніть увагу, що дві різні миски можуть мати однаковий об'єм. Наприклад, обидві наступні миски мають об'єм 18:
\ /
\ / \ /
\___/ \_______/
Ми можемо налити трохи води в миску. Вода представлена у вигляді рядів ~
символів замість пробілів всередині миски. У нижньому рядку немає пробілів, тому він не може містити ~
s. Це означає, що наш приклад можна наповнити водою лише одним способом:
\~~~~~/
\___/
Інші миски можна заповнити кількома способами:
\~~~~~/ \ /
\ / \~~~/
\_/ \_/
Обсяг води в чаші є об'єм чаші рядків нижче в ~
символи. Наведені вище приклади мають 4, 6 and 2
відповідно обсяги води .
Вхідні дані
- Два натуральних числа, об’єм миски та об’єм води.
- Ви можете вибрати порядок двох чисел.
- Два цілих числа можуть бути введені у будь-якому загальному форматі списку (список, кортеж, масив тощо) або у вигляді двох окремих цілих чисел.
- Принаймні одна допустима конфігурація чаші-вода гарантована для вхідних значень.
Вихідні дані
- Представлення ASCII чаші з водою, де чаша та об'єм води співпадають із вхідними.
- Якщо ви вирішите повернути результат замість друку, він повинен бути повернутий як один рядок (або найближча альтернатива вашої мови).
- Дозволяється будь-який пробіл пробілу.
- Не допускається зайвих провідних пробілів.
- Якщо є кілька правильних конфігурацій, ви можете вибрати, яку саме вивести, але ви можете вивести лише одну.
Приклади
Кожна ціла пара вводу супроводжується одним або кількома можливими виходами.
6 2
\~~~/
\_/
10 4
\~~~~~/
\___/
24 8
\ /
\~~~~~~/
\ /
\__/
42 12 //either of the two output is correct
\ /
\ /
\~~~~~~~/
\ /
\ /
\_/
\ /
\~~~~~~~~~~~~~/
\___________/
90 68
\~~~~~~~~~~~~~~~~~~~~~/
\ /
\ /
\ /
\_____________/
102 42
\ /
\ /
\~~~~~~~~~~~~~~~~~/
\ /
\ /
\___________/
Це кодовий гольф, тому найкоротший запис виграє.