Codeforces Round 486 (Div. 3) |
---|
Закончено |
Заданы $$$n$$$ строк. Каждая строка состоит из строчных букв латинского алфавита. Расположите (переупорядочите) строки в таком порядке, чтобы каждая строка содержала все строки, идущие перед ней, в качестве подстроки.
Строка $$$a$$$ содержится в качестве подстроки в строке $$$b$$$, если в строке $$$b$$$ можно выбрать несколько подряд идущих букв так, что они образуют строку $$$a$$$. Например, строка «for» содержится в качестве подстроки в строках «codeforces», «for» и «therefore», но при этом не содержится в качестве подстроки в строках «four», «fofo» и «rof».
В первой строке входных данных записано целое число $$$n$$$ ($$$1 \le n \le 100$$$) — количество строк в наборе.
Далее содержится $$$n$$$ заданных строк. Длина каждой из них от $$$1$$$ до $$$100$$$ букв включительно. Все строки состоят из строчных латинских букв.
Среди заданных строк могут быть одинаковые.
Если заданные $$$n$$$ строк невозможно расположить в требуемом порядке, выведите «NO» (без кавычек).
В случае положительного ответа выведите «YES» (без кавычек), следом выведите $$$n$$$ заданных строк в требуемом порядке.
5
a
aba
abacaba
ba
aba
YES
a
ba
aba
aba
abacaba
5
a
abacaba
ba
aba
abab
NO
3
qwerty
qwerty
qwerty
YES
qwerty
qwerty
qwerty
Во втором тестовом примере строки невозможно расположить в требуемом порядке потому, что «abab» не является подстрокой «abacaba».
Название |
---|