Cô bé Mirko đã có chuyến thăm du lịch tới một ngôi làng gần Donji Andrijevci, một thị trấn ở Slavonia. Khi điều đó xảy ra, cách sắp xếp các đường phố trong làng trông hết sức quen thuộc với hình dạng của một cây nhị phân hoàn hảo cấp ~K~. Một cây nhị phân hoàn hảo cấp ~K~ bao gồm ~2^K – 1~ nút được sắp xếp theo cấp độ ~K~ (giống như trong hình). ). Mỗi nút chứa một tòa nhà được dán nhãn số nhà. Hơn nữa, tất cả các tòa nhà trừ những tòa nhà ở cấp độ cuối cùng đều có con trái và con phải (xem lại hình ảnh).
Mirko đã đến thăm tất cả các tòa nhà trong một ngôi làng và ghi lại thứ tự lối vào chính xác. Bây giờ anh ấy muốn mô tả cho bạn ngôi làng trông như thế nào, nhưng anh ấy không thể nhớ rõ. May mắn thay, anh ấy nhớ lại cách anh ấy đến thăm các tòa nhà:
Lúc đầu, anh ấy đứng trước tòa nhà duy nhất ở tầng mộ
Nếu tòa nhà mà anh ta đang đứng trước có con bên trái mà anh ta chưa đến thăm thì anh ta sẽ chuyển đến trước con bên trái
Nếu tòa nhà không có con bên trái hoặc anh ta đã đến thăm nó, anh ta sẽ vào tòa nhà hiện tại và viết số nhà lên giấy của mình
nếu anh ta đã đến thăm tòa nhà hiện tại và tòa nhà có con phù hợp, anh ta sẽ chuyển đến trước tòa nhà bên phải
nếu anh ta đã đến thăm tòa nhà hiện tại và con trái và bên phải của nó, anh ta sẽ quay lại với phụ huynh của tòa nhà hiện tại
Sau khi đi thăm các làng trong hình trên, tờ giấy sẽ như sau: ~2-1-3~ cho làng đầu tiên và ~1-6-4-3-5-2-7~ cho làng thứ hai. Viết chương trình giúp Mirko sắp xếp lại thứ tự số nhà ở mỗi cấp độ.
Input
- Dòng đầu tiên chứa số nguyên ~K~ ~(1 \le K \le 10)~, số cấp của ngôi làng Mirko vừa ghé thăm.
- Dòng đầu vào thứ hai chứa ~2^K~ số nguyên, dãy số nhà trên giấy của Mirko. Số nhà sẽ là duy nhất và nằm trong khoảng ~[1, 2^K]~.
Output
- Đầu ra phải bao gồm ~K~ dòng. Dòng thứ ~i~ phải chứa dãy số nhà ở cấp thứ ~i~ của làng.
Sample Input 1
2
2 1 3
Sample Output 1
1
2 3
Sample Input 2
3
1 6 4 3 5 2 7
Sample Output 2
3
6 2
1 4 5 7
Làm rõ ví dụ thứ nhất và thứ hai: Các ví dụ tương ứng với các hình ảnh trong bài tập.
Bình luận