Gửi bài giải
Điểm:
0,71 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
512M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Số nghịch thế của dãy ~a_1, a_2, .., a_n~ là số cặp ~(i, j)~ mà ~i < j~ và ~a_i > a_j~ .
Cho ~n~ và số nghịch thế ~m~, tìm hoán vị nhỏ nhất của tập {1, 2, . . . , n} , mà số nghịch thế là ~m~.
Hoán vị ~a_1, a_2, . . . , a_n~ nhỏ hơn hoán vị ~b_1, b_2, . . . , b_n~ nếu tồn tại số nguyên ~k~ sao cho ~a_j = b_j~ với ~1 \le j < k~ và ~a_k < b_k~.
Input
Gồm một số test case, mỗi test gồm 2 số nguyên ~n~ và ~m~ và kết thúc là 2 số -1 -1.
Giả thiết ~1 \le n \le 50000~ và ~0 \le m \le n(n − 1)/2~.
Output
Với mỗi test, in ra hoán vị nhỏ nhất trên 1 dòng.
Sample Input
5 9
7 3
-1 -1
Sample Output
4 5 3 2 1
1 2 3 4 7 6 5
Bình luận