Олимпиадный тренинг

Задача . F. Математическое выражение


Барбара опоздала на урок математики, поэтому учитель сразу же заставил ее решить пример на листке. Барбара посмотрела на листок и увидела на нем лишь \(n\) чисел \(a_1, a_2, \ldots, a_n\), без каких-либо арифметических знаков. Учитель объяснил Барбаре, что ей требуется лишь расставить разрешенные знаки между числами так, чтобы получившееся выражение имело максимально возможное значение. Для того чтобы узнать разрешенные знаки, учитель дал Барбаре строку \(s\), которая содержит данную информацию.

Легко заметить, что Барбаре требуется поставить \(n - 1\) знак между соседними числами. Выражение должно начинаться с числа и все знаки должны быть разрешены (содержаться в строке \(s\)). Обратите внимание, что умножение имеет приоритет выше, чем сложение или вычитание, а сложение и вычитание имеют одинаковый приоритет и выполняются слева направо. Помогите Барбаре и составьте требуемое выражение!

Входные данные

Первая строка входных данных содержит единственное целое число \(n\) (\(1 \le n \le 10^5\)) — количество чисел на листке.

Вторая строка входных данных содержит \(n\) целых чисел \(a_1, a_2, \ldots, a_n\) (\(0 \le a_i \le 9\)), где \(a_i\) равно \(i\)-му элементу \(a\).

Третья строка входных данных содержит строку \(s\) (\(1 \le |s| \le 3\)) — разрешенные в выражении знаки. Гарантируется, что строка может состоять только из символов «-», «+» и «*». Также гарантируется, что все символы строки различны.

Выходные данные

Выведите \(n\) чисел, разделённых \(n - 1\) знаком — выражение, имеющее максимальный результат. Если вариантов ответа несколько — выведите любой из них.

Примечание

В первом тестовом примере также подходят ответы: «2+2+0», «2+2-0», «2*2+0».


Примеры
Входные данныеВыходные данные
1 3
2 2 0
+-*
2*2-0
2 4
2 1 1 2
+*
2+1+1+2

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя