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(x−1), sau đó hoán đổi ax−1 và ax (phần tử thứ x−1 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

  • 1≤n≤1000

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í 1–2 rồi vị trí 2–3), 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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0