Voi Con và Hàm Đệ Quy

Đề bài

Mô tả

Cho một hoán vị a của các số nguyên từ 1 đến n. Ta định nghĩa hàm đệ quy f(x) "sắp xếp" x phần tử đầu tiên của a như sau:

  • Nếu x=1, thoát khỏi hàm.
  • Ngược lại, gọi f(x1), sau đó hoán đổi ax1ax (phần tử thứ x1 và phần tử thứ x, đánh số từ 1).

Hàm này tất nhiên không thực sự sắp xếp đúng cho mọi hoán vị. Nhiệm vụ của bạn là tìm một hoán vị các số nguyên từ 1 đến n sao cho sau khi gọi f(n), mảng a trở thành thứ tự tăng dần 1,2,,n.

Dữ liệu vào

Một dòng duy nhất chứa số nguyên n — kích thước của hoán vị.

Dữ liệu ra

In ra n số nguyên phân biệt từ 1 đến n, cách nhau bởi dấu cách — hoán vị thoả mãn yêu cầu. Đề bài đảm bảo luôn tồn tại đáp án (và là duy nhất).

Ràng buộc

  • 1n1000

Ví dụ

Input Output Giải thích
1 1 Không có thao tác nào được thực hiện; mảng đã sắp.
2 2 1 f(2) gọi f(1) (không làm gì), rồi hoán đổi a1,a2, biến [2,1] thành [1,2].
3 3 1 2 f(3) thực hiện hai thao tác hoán đổi (vị trí 12 rồi vị trí 23), biến [3,1,2][1,3,2][1,2,3].

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0