trang chủ / bài tập / almsorted

Hoán vị gần sắp xếp

Đề bài

Mô tả

Một hoán vị a1,a2,,an của 1,2,,n được gọi là gần sắp xếp nếu thỏa mãn điều kiện ai+1ai1 với mọi i từ 1 đến n1.

Xét danh sách tất cả các hoán vị gần sắp xếp của 1,2,,n, được liệt kê theo thứ tự từ điển. Hãy tìm hoán vị thứ k trong danh sách này.

Hoán vị p nhỏ hơn hoán vị q theo thứ tự từ điển nếu tại vị trí đầu tiên mà pq khác nhau, phần tử của p nhỏ hơn phần tử tương ứng của q.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm một dòng chứa hai số nguyên nk.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng chứa hoán vị gần sắp xếp thứ k theo thứ tự từ điển, hoặc 1 nếu nó không tồn tại.

Ràng buộc

  • 1t1000
  • 1n105
  • 1k1018
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 105.

Ví dụ

Input Output Giải thích
5
1 1
1 2
3 3
6 5
3 4
1
-1
2 1 3
1 2 4 3 5 6
3 2 1
Với n=1, danh sách chỉ có {[1]} nên không có hoán vị thứ 2. Với n=3, danh sách theo thứ tự từ điển là {[1,2,3],[1,3,2],[2,1,3],[3,2,1]}.
1
60 576460752303423489
-1 Với n=60 chỉ có 259=576460752303423488 hoán vị gần sắp xếp, nên hoán vị thứ 576460752303423489 không tồn tại.

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