Hãy xem xét năm sinh vật biển nghệ thuật ASCII này:
- Cá tiêu chuẩn:
><>
hoặc<><
- Cá tốc độ:
>><>
hay<><<
- Cá khỏe:
><>>
hoặc<<><
- Cá co giãn:
><<<>
hoặc<>>><
- Cua:
,<..>,
Viết chương trình chấp nhận một chuỗi ký tự tùy ý <>,.
. Nếu có một cách để diễn giải toàn bộ chuỗi là một loạt các sinh vật biển không chồng chéo, thì chuỗi đó phải được in lại với các khoảng trống được chèn giữa các sinh vật. Nếu giải thích này là không thể, không có gì nên được xuất ra (chương trình âm thầm kết thúc).
Ví dụ, chuỗi <><><>
có thể được hiểu là hai cá ngược tiêu chuẩn. Đầu ra tương ứng sẽ là <>< ><>
.
Một ví dụ khác, chuỗi ><>><>>
chứa "phiên bản" của ...
(dấu ngoặc chỉ được thêm dưới dạng chỉ báo)
- một vài con cá tiêu chuẩn:
[><>][><>]>
- một con cá nhanh nhẹn:
><[>><>]>
- một con cá mạnh mẽ theo một vài cách:
[><>>]<>>
và><>[><>>]
tuy nhiên, chỉ ghép cặp một con cá tiêu chuẩn và một con cá mạnh mẽ [><>][><>>]
kéo dài toàn bộ chuỗi không có ký tự chia sẻ cá (không có sự chồng chéo). Do đó, đầu ra tương ứng ><>><>>
là ><> ><>>
.
Nếu có nhiều cách chuỗi có thể được diễn giải, bạn có thể in bất kỳ một trong số chúng. (Và chỉ in một trong số chúng.) Ví dụ, <><<<><
có thể được hiểu là một con cá tiêu chuẩn và một con cá mạnh mẽ: [<><][<<><]
hoặc là một con cá tốc độ và một con cá tiêu chuẩn : [<><<][<><]
. Vì vậy, <>< <<><
hoặc <><< <><
là đầu ra hợp lệ.
Cua chỉ để cho vui. Vì chúng không bắt đầu hoặc kết thúc bằng <
hoặc >
, chúng dễ xác định hơn nhiều (ít nhất là về mặt trực quan). Ví dụ: chuỗi
,<..>,><<<>,<..>,><>,<..>,<>>><,<..>,><>>,<..>,<<><,<..>,<><,<..>,>><>
rõ ràng sẽ tạo ra đầu ra
,<..>, ><<<> ,<..>, ><> ,<..>, <>>>< ,<..>, ><>> ,<..>, <<>< ,<..>, <>< ,<..>, >><>
Dưới đây là một số ví dụ về chuỗi (một trên mỗi dòng) không tạo ra đầu ra:
<><>
,<..>,<..>,
>>><>
><<<<>
,
><><>
,<><>,
<<<><><<<>>><>><>><><><<>>><>><>>><>>><>><>><<><
Chuỗi cuối cùng ở đây có thể được phân tích cú pháp nếu bạn loại bỏ hàng đầu <
:
<<>< ><<<> >><> ><> ><> <>< <>>>< >><> >><> >><> ><>> <<><
(Có thể có các đầu ra khác có thể.)
Chi tiết
- Chuỗi đầu vào sẽ chỉ chứa các ký tự
<>,.
. - Chuỗi đầu vào sẽ dài ít nhất một ký tự.
- Lấy đầu vào theo bất kỳ cách phổ biến nào (dòng lệnh, stdin) và xuất ra thiết bị xuất chuẩn.
- Mã ngắn nhất tính bằng byte thắng. ( Bộ đếm byte tiện dụng. ) Tiebreaker là bài trước.