ГлавнаяСборникиТурнирыРазделыФорумыУчастникиПечатьПомощьО системе

Сборники > Problems from everywhere > задача:


VologdaInterUni-G. 50639 - Скобки

Гость
• Обсуждение задачи (1)

Задачи сборника

• VologdaInterCity-D. 50605 - За реш...
• VologdaInterCity-E. 50624 - Проста...
• VologdaInterUni-A. 50628 - Матрица
• VologdaInterUni-B. 2 ->10
• VologdaInterUni-C. 50629 - Минусы
• VologdaInterUni-D. 50610 - Выполн...
• VologdaInterUni-E. 50619 - Марсоход
• VologdaInterUni-F. 50638 - Сообще...
• VologdaInterUni-G. 50639 - Ско...
• VologdaInterUni-H. 50648 - Трансля...

Обратная связь

Если у вас есть предложения или пожелания по работе Contester, посетите форум сайта www.contester.ru.

Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб.
Автор: Павел Кузнецов, ПГУ. Сложность Дельта

Рассмотрим множество S, состоящее из N (1 ≤ N ≤ 10) начальных букв латинского алфавита. Введём на этом множестве бинарную операцию умножения при помощи таблицы, т.е. каждой упорядоченной паре элементов из S поставим в соответствие некоторый элемент из S. Например, пусть N = 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 - количество элементов множества, таблица умножения для этого множества, строка, состоящая из маленьких латинских букв-элементов множества, а также задан некий элемент множества. Ваша программа должна расставить в данной строке скобки так, чтобы порядок умножения определялся однозначно, и результатом умножения был заданный элемент.

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

Ввод 1 Ввод 2
2
aabba
b
ba
bb
2
aabba
a
ba
bb
Вывод 1 Вывод 2
YES
(a(ab))(ba)
YES
(a((a(bb))a))

Для отправки решений необходимо выполнить вход.

www.contester.ru