Khôi phục khối lập phương
Peter có một khối lập phương với cạnh khác . Anh đặt khối lập phương vào không gian ba chiều sao cho các đỉnh có toạ độ nguyên (các cạnh khối không nhất thiết song song với trục toạ độ). Sau đó anh ghi vào một tờ giấy dòng, mỗi dòng chứa số nguyên — toạ độ của một đỉnh của khối lập phương (mỗi đỉnh viết đúng một lần).
Trong lúc Peter vắng mặt, em trai Nick nghịch ngợm: với mỗi dòng, Nick có thể hoán vị các số trong cùng một dòng một số lần tuỳ ý (Nick không bao giờ tráo các số giữa hai dòng khác nhau).
Cho dòng số sau khi Nick đã nghịch, hãy khôi phục lại toạ độ ban đầu của các đỉnh, hoặc xác định rằng không thể có khối lập phương nào ứng với dữ liệu đã cho.
Mỗi dòng của đầu ra phải là một hoán vị của dòng tương ứng ở đầu vào. Cạnh của khối lập phương phải có độ dài khác .
Dữ liệu vào
Gồm dòng, mỗi dòng chứa số nguyên — các số viết trên giấy sau khi Nick nghịch.
Dữ liệu ra
- Nếu tồn tại cách khôi phục, in
YESở dòng đầu, sau đó in dòng, mỗi dòng số nguyên — toạ độ đỉnh khôi phục được. Dòng thứ của đầu ra phải là một hoán vị của dòng thứ của đầu vào. Nếu có nhiều cách, in ra một cách bất kỳ. - Nếu không tồn tại, in
NO(không in gì thêm).
Ràng buộc
- Mọi số trong đầu vào có giá trị tuyệt đối không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 |
YES 0 0 0 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 1 1 |
Khối lập phương đơn vị, các cạnh song song với trục. |
| 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 |
NO | Có đỉnh trùng nhau tại và đỉnh trùng tại , không thể là một khối lập phương. |
Bình luận