Magic Permutation

Xem dạng PDF

Gửi bài giải


Điểm: 100,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 6M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++

Nguồn : https://www.spoj.com/problems/CTRICK/ Có một dãy số nguyên gồm n phần tử chỉ gồm các số từ 1 đến n, mỗi số xuất hiện đúng 1 lần. Sắp xếp dãy sao cho sau khi sắp xếp, ta có thể thực hiện như sau.

Với i từ 1 đến n - 1, ta lần lượt chuyển i phần tử đầu về cuối, thì phần tử đầu tiên của dãy sau khi chuyển chính là i, ta loại bỏ số i ra khỏi dãy và tiếp tục

vd : n = 4 ta có thể sắp xếp dãy {1,2,3,4} thành như sau 2 1 4 3

i = 1, ta lần lượt chuyển i = 1 phần tử đầu về cuối dãy 2 1 4 3 => 1 4 3 2 , phần tử đầu của dãy là 1 ( đúng bằng i) ta loại bỏ 1 khỏi dãy, còn lại : 4 3 2

i = 2, ta lần lượt chuyển i = 2 phần tử đầu về cuối dãy 4 3 2 => 3 2 4 => 2 4 3 phần tử đầu của dãy là 2 ( đúng bằng i) ta loại bỏ 2 khỏi dãy, còn lại : 4 3

i = 3, ta lần lượt chuyển i = 3 phần tử đầu về cuối dãy 4 3 => 3 4 => 4 3 => 3 4 phần tử đầu của dãy là 3 ( đúng bằng i) ta loại bỏ 3 khỏi dãy, còn lại : 4

Input

Dòng đầu tiên chứa một số nguyên t - số lương test ~(1 \le t \le 5 )~

t dòng tiếp theo, mỗi dòng chứa một số nguyên n số lượng phần tử của dãy. ~(1 \le n \le 2.10^4 )~

** Tổng các n của t test không vượt quá ~2.10^4~

Output

Với mỗi test in ra n số nguyên trên một dòng -là cách sắp xếp của dãy thỏa mãn yêu cầu đề bài.

Sample Input 1

2
4
5

Sample Output 1

2 1 4 3 
3 1 4 5 2

Bình luận

Hãy đọc nội quy trước khi bình luận.


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