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

Vasya và Bảng thế

Đề bài

Mô tả

Cho ba xâu s, ab, mỗi xâu chỉ gồm k chữ cái Latin thường đầu tiên.

Một bảng thế (template) là một xâu độ dài k trong đó mỗi chữ cái trong k chữ cái Latin đầu tiên xuất hiện đúng một lần (như vậy có k! bảng thế khác nhau). Khi áp dụng bảng thế p lên xâu s, mỗi ký tự của s được thay bằng pi, với i là vị trí (chỉ số) của ký tự đó trong bảng chữ cái. Ví dụ, áp dụng bảng thế bdca lên xâu aabccd cho ra xâu bbdcca.

Hãy xác định xem có tồn tại một bảng thế sao cho khi áp dụng lên s thì xâu nhận được lớn hơn hoặc bằng anhỏ hơn hoặc bằng b theo thứ tự từ điển hay không. Nếu có nhiều bảng thế thỏa mãn, in ra một bảng bất kỳ.

Xâu a nhỏ hơn xâu b theo thứ tự từ điển nếu tồn tại vị trí i sao cho ai<biaj=bj với mọi j<i.

t bộ dữ liệu cần xử lý độc lập với nhau.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm bốn dòng:
    • Dòng đầu chứa số nguyên k — độ dài của bảng thế.
    • Dòng thứ hai chứa xâu s.
    • Dòng thứ ba chứa xâu a.
    • Dòng thứ tư chứa xâu b.

Ba xâu s, a, b có cùng độ dài và chỉ gồm k chữ cái Latin thường đầu tiên. Đảm bảo a nhỏ hơn hoặc bằng b theo thứ tự từ điển.

Dữ liệu ra

Với mỗi bộ dữ liệu:

  • Nếu không tồn tại bảng thế thỏa mãn, in ra NO trên một dòng.
  • Ngược lại, in ra YES trên một dòng, sau đó in bảng thế tìm được (k chữ cái thường, mỗi chữ trong k chữ cái đầu tiên xuất hiện đúng một lần) trên dòng tiếp theo.

Ràng buộc

  • 1t106
  • 1k26
  • 1|s|=|a|=|b|106
  • Tổng độ dài các xâu trên tất cả các bộ dữ liệu không vượt quá 3·106.

Ví dụ

Input Output Giải thích
2
4
bbcb
aada
aada
3
abc
bbb
bbb
YES
badc
NO
Bộ 1: với bảng thế badc, áp dụng lên bbcb cho aada, đúng bằng cả a và b. Bộ 2: a = b = bbb nhưng các ký tự của abc đôi một khác nhau nên ảnh phải có ba ký tự khác nhau, không thể bằng bbb.
1
3
abc
bbb
cca
YES
bca
Áp dụng bca lên abc cho bca, và bbb ≤ bca ≤ cca.

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