trang chủ / đề bài / unstsort

Sắp xếp xâu không ổn định

Đề bài

Mô tả

Có một xâu s gồm n chữ cái Latin thường mà ta cần khôi phục.

Cho hai hoán vị p và q của các chỉ số từ 1 đến n (hai hoán vị không nhất thiết giống nhau). Xâu s cần khôi phục phải thoả mãn: với mọi i từ 1 đến n−1,

s[pi]≤s[pi+1]vàs[qi]≤s[qi+1].

Nói cách khác, nếu ta viết các chữ cái của s theo thứ tự chỉ số trong p thì được một xâu không giảm; điều tương tự cũng đúng với thứ tự chỉ số trong q.

Hãy khôi phục một xâu s bất kỳ có độ dài n, gồm các chữ cái Latin thường và chứa ít nhất k chữ cái phân biệt, thoả mãn cả hai điều kiện trên. Nếu có nhiều đáp án, in ra đáp án nào cũng được.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và k: độ dài xâu và số chữ cái phân biệt tối thiểu cần có.
  • Dòng thứ hai chứa n số nguyên p1,p2,…,pn: hoán vị p.
  • Dòng thứ ba chứa n số nguyên q1,q2,…,qn: hoán vị q.

Dữ liệu ra

  • Nếu không tồn tại xâu phù hợp, in ra một dòng chứa NO.
  • Ngược lại, in ra YES ở dòng đầu, và xâu s ở dòng thứ hai. Xâu gồm n chữ cái Latin thường, chứa ít nhất k chữ cái phân biệt và thoả mãn cả hai hoán vị. Nếu có nhiều đáp án, in ra đáp án bất kỳ.

Ràng buộc

  • 1≤n≤2·105
  • 1≤k≤26
  • p và q đều là hoán vị của 1,2,…,n.

Ví dụ

Input Output Giải thích
3 2
1 2 3
1 3 2
YES
abb
Theo p=(1,2,3): a, b, b không giảm. Theo q=(1,3,2): s[1],s[3],s[2] = a, b, b không giảm. Xâu có 2 chữ cái phân biệt (a, b) ≥k=2.
5 4
1 3 2 4 5
2 3 5 1 4
NO Hai hoán vị buộc quá nhiều vị trí phải bằng nhau nên không thể tạo đủ 4 chữ cái phân biệt.
6 5
5 6 1 2 3 4
6 5 1 2 3 4
YES
bcdeaa
Các vị trí 5 và 6 buộc bằng nhau (cùng đứng đầu ở cả hai thứ tự), các vị trí còn lại tách được, cho 5 chữ cái phân biệt.

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