Hoán Vị Yêu Thích Của FJ

Đề bài

Mô tả

Farmer John có một hoán vị p độ dài N (2≤N≤105). Farmer Nhoj đã tháo rời hoán vị và tạo ra gợi ý bằng quy trình sau:

Gọi p1′,p2′,…,pm′ là các phần tử còn lại (ban đầu m=N). Lặp lại cho đến khi còn 1 phần tử:

  • Nếu p1′>pm′: ghi ra p2′ và xóa p1′
  • Ngược lại (p1′≤pm′): ghi ra pm−1′ và xóa pm′

Quy trình tạo ra N−1 giá trị gợi ý h1,h2,…,hN−1.

Cho dãy h, tìm hoán vị p nhỏ nhất theo thứ tự từ điển thỏa mãn gợi ý, hoặc in −1 nếu không tồn tại.

Dữ liệu vào

  • Dòng 1: Số nguyên T -- số test case (1≤T≤10)
  • Mỗi test case:
    • Dòng 1: Số nguy��n N
    • Dòng 2: N−1 số nguyên h1,h2,…,hN−1 (1≤hi≤N)

Dữ liệu ra

Với mỗi test case, in hoán vị nhỏ nhất theo thứ tự từ điển, hoặc −1 nếu không khả thi.

Ràng buộc

  • 2≤N≤105
  • 1≤T≤10
  • Test 2: N≤8
  • Test 3-6: N≤100

Ví dụ

Input Output Giải thích
5
2
1
2
2
4
1 1 1
4
2 1 1
4
3 2 1
1 2
-1
-1
3 1 2 4
1 2 3 4
Test 1: p=[1,2], p1′=1≤p2′=2, ghi p1′=1. Test 4: p=[3,1,2,4], bước 1: 3≤4 nên ghi p3′=2; bước 2: [3,1,2], 3>2 nên ghi p2′=1; bư���c 3: [1,2], 1≤2 nên ghi 1.

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