trang chủ / đề bài / substrsort

Sắp xếp xâu con

Đề bài

Mô tả

Cho n xâu gồm các chữ cái Latin thường. Hãy sắp xếp lại thứ tự các xâu sao cho với mỗi xâu, mọi xâu đứng trước nó đều là xâu con của nó.

Xâu a là xâu con của xâu b nếu có thể chọn một đoạn các ký tự liên tiếp trong b tạo thành a. Ví dụ, "for" là xâu con của "codeforces", "for" và "therefore", nhưng không là xâu con của "four", "fofo" và "rof".

Các xâu đã cho có thể trùng nhau.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n, số lượng xâu.
  • n dòng tiếp theo, mỗi dòng chứa một xâu.

Dữ liệu ra

  • Nếu không thể sắp xếp theo yêu cầu, in ra NO.
  • Ngược lại, in ra YES, sau đó in n xâu đã cho theo thứ tự tìm được, mỗi xâu trên một dòng.

Ràng buộc

  • 1≤n≤100
  • Độ dài mỗi xâu từ 1 đến 100.
  • Các xâu chỉ gồm chữ cái Latin thường.

Ví dụ

Input Output Giải thích
5
a
aba
abacaba
ba
aba
YES
a
ba
aba
aba
abacaba
Mỗi xâu chứa tất cả các xâu đứng trước nó.
5
a
abacaba
ba
aba
abab
NO Xâu "abab" không là xâu con của "abacaba", và "abacaba" cũng không là xâu con của "abab", nên không có thứ tự hợp lệ.
3
qwerty
qwerty
qwerty
YES
qwerty
qwerty
qwerty
Một xâu là xâu con của chính nó.

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