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