Hôm nay là Purim, trong đó một tùy chỉnh là đưa ra các cookie hình tam giác với cách gọi là hamantaschen (số ít: hamantasch ). Một phong tục khác là uống nhiều rượu.
Tôi không phải là thợ làm bánh hoàn hảo nhất .... Tôi có rất nhiều hamantaschen có kích thước bất thường để đưa ra và rất nhiều bạn bè để tặng họ! Nếu tôi gửi cho bạn một hình ảnh của cookie của tôi, bạn có thể cho tôi biết tôi có bao nhiêu kích cỡ và điền? Nhưng vì đó là Purim và tôi quá say để đọc nhiều mã, nên nó cần phải là mã nhỏ như bạn có thể tạo.
Các định nghĩa
Kích thước
Một hamantasch có thể là bất kỳ kích thước . Hamantasch nhỏ nhất là cỡ 1 và trông như thế này:
/\ --
-- \/
Đôi khi, nhiều hamantaschen có thể chồng lên nhau . Hình dưới đây được tính là hai hamantaschen (một cỡ 1, một cỡ 2):
/\
/\ \
----
Một số hamantaschen có điền . Điều này sẽ được chỉ định bằng cách điền vào tất cả các khoảng trắng bên trong bằng một ký tự. Lưu ý rằng kích thước 1 hamantaschen không thể có đầy.
Chúng tôi sẽ đặt tên hamantaschen dựa trên điền và kích thước. Chúng ta hãy sử dụng định dạng <filling> <size>
và nếu không được lấp đầy, - <size>
(bạn có thể sử dụng khoảng trắng thay vì -
, nhưng đánh dấu không như vậy).
Đây là a . 2
, a . 4
và a - 3
:
/\
/./\
---- /./ \
\../ /./ \
\/ --------
Đây là a @ 3
, a . 2
và a - 4
:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
Đây là một cái gì đó khó khăn hơn. Xem làm thế nào & 2
có ít điền hơn bạn mong đợi do nghiêng từ chồng chéo - 3
? Nó có một - 1
, & 2
a - 3
và a & 4
:
--------
\ \/&/
\ /\/
\/&/
\/
Đầu vào
Bạn sẽ được cung cấp một tệp văn bản hoặc một chuỗi hamantaschen (dòng mới theo dõi tùy chọn và khoảng trắng theo dõi được đệm tùy ý là chẵn).
Hạn mức
- Bạn có thể mong đợi chuỗi hợp lệ - nghĩa là, mọi ký tự không phải khoảng trắng đều đóng góp vào một hamantasch ngọt ngon (tại sao lại lãng phí bột?).
- Bạn cũng có thể mong đợi nó được điền đúng hay không - nghĩa là, mỗi hamantasch nó sẽ được điền đầy đủ với một ký tự ASCII nhất quán - ASCII 32 cho không được lấp đầy, hoặc bất cứ điều gì 32..127 cho điền (không bao gồm
/
,\
và-
). - Những hamantaschen này không được xếp chồng lên nhau trong 3 không gian. Tất cả
/
và\
sẽ được nhìn thấy. Tất cả-
những gì không bị chặn bởi/
và\
sẽ được nhìn thấy. Làm đầy đến cuối cùng. - Tất cả các hamantaschen sẽ có ít nhất một nửa đường ngang của chúng (làm tròn lên).
- Bất kỳ khối tiếp giáp nào chỉ lấp đầy hamantasch nhỏ nhất bao quanh nó.
Đầu ra
Trả về một danh sách "tên" của tất cả các hamantaschen có thể được tìm thấy đáp ứng các tiêu chí trên. Đầu ra có thể ở bất kỳ dạng nào bạn muốn (chuỗi, hàm băm, thiết bị xuất chuẩn, v.v.).
Các trường hợp thử nghiệm
Trường hợp thử nghiệm số 1
Đầu vào số 1:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
/\
/**\
/*/\*\
/*/..\*\
--------
Đầu ra # 1:
. 2
. 2
- 4
@ 3
* 4
Trường hợp thử nghiệm # 2
Đầu vào số 2:
/\----
/\/\*\/
/ /\d\/
------
Đầu ra # 2:
- 3
- 2
d 2
- 1
* 2
- 1
Bài kiểm tra số 3
Đầu vào số 3:
----
\/\/
/\/\ /\
---- /::\
----
Đầu ra # 3:
- 1
- 1
- 2
- 1
- 1
- 2
: 2
Bài kiểm tra số 4
Đầu vào số 4:
/\/\
/ /\$\
-/--/\\
--/--\
/xxx/\
/xxx/##\
---/----\
/ \
--------
Đầu ra số 4:
$ 2
x 4
- 3
- 2
- 4
- 1
- 1
# 2
Trường hợp kiểm tra không hợp lệ # 5
Đầu vào:
/\
\/
Đầu ra:
Bạn không cần phải xử lý việc này.
/
và \
, và -
sẽ luôn luôn trump điền.
(1,0)
, bị tắt bởi +1
. Tuy nhiên, tôi biết ý của bạn là gì và tôi không đồng ý. Dấu hiệu nào cho thấy đó (2, 2)
là trung tâm trên cùng của a - 2
và không chỉ phía trên bên phải và bên trái của hai - 1
s phía trên ? Không ai mà tôi có thể nhìn thấy. Và logic tương tự áp dụng cho (3, 2)
. Trừ khi bạn muốn thêm một quy tắc để giả sử hamantaschen tối đa có thể ...