АВТ
Language:

Remote Training on Programming

Problems On-line status Contests FAQ
For authors:
Register  ||  Login
 
Hello, Guest! Login or register.

177. G-Brackets

Time Limit: 1 seconds
Memory Limit:64000KB
Points:10
View Problem Statistics Submit Problem added Administrator

Рассмотрим множество S, состоящее из N (1 <= N <= 10) начальных букв латинского алфавита. Введём на этом множестве бинарную операцию умножения при помощи таблицы, т.е. каждой упорядоченной паре элементов из S поставим в соответствие некоторый элемент из S. Например, пусть = 2, тогда
S = {a, b}. Возьмём таблицу

 

a

b

a

b

a

b

b

b

Первая строка этой таблицы говорит о том, что a × a = b и a × b = a. Вторая строка означает, что b × a = b и b × b = b. Таким образом мы задали таблицу умножения для множества S.

В дальнейшем мы будем опускать символ умножения и вместо a × b будем писать просто ab. Умножение, заданное произвольной таблицей, не обязано быть ни коммутативно — ab не обязано равняться ba, ни ассоциативно — a(bc) не обязано равняться (ab)c.

Дано число N — количество элементов множества, таблица умножения для этого множества, строка, состоящая из маленьких латинских букв-элементов множества, а также задан некий элемент множества. Ваша программа должна расставить в данной строке скобки так, чтобы порядок умножения определялся однозначно, и результатом умножения был заданный элемент.

Время тестирования: 1 секунда на один тест на Intel Celeron 2500.

Первая строка входного файла содержит целое число N (1 <= N <= 10). Вторая строка содержит исходную строку из элементов множества. Гарантируется, что она будет содержать только разрешённые строчные латинские буквы, и её длина не превзойдёт 100. В третьей строке задан символ-элемент множества, который нужно получить в результате умножения. Следующие N строк содержат по N символов каждая — это таблица умножения. Символы в строках заданы без пробелов.

Если можно расставить скобки как требует того условие задачи, то в первой строке выходного файла выведите "YES", в противном случае — "NO" (большими буквами, без кавычек). В случае положительного ответа во второй строке выведите исходную строку с расставленными скобками. Скобки должны быть расставлены корректно, и длина ответа не должна превышать 500 символов. Если ответов несколько, выведите любой.

Примеры

STDIN

STDOUT

2
aabba
b
ba
bb
YES
(a(ab))(ba)
2
aabba
a
ba
bb
YES
(a((a(bb))a))

 


View Problem Statistics Submit Author/source:
Problems from Contests / Vologda Students Contests / IX InterUni Contest 2006 /
176. F-Message 177. 178. H-Translator
We can all benefit by doing occasional "toy" programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit. The art of tackling miniproblems with all our energy will sharpen our talents for the real problems. Donald E. Knuth.
time generating 0.499 sec.
© Copyright VSTU, AVT, Nosov D.A.