Codeforces Round 306 (Div. 2) |
---|
Закончено |
Напомним, что импликация — это функция от двух логических аргументов, значение которой ложно тогда и только тогда, когда значение первого аргумента истинно, а второго аргумента ложно.
Для записи импликации используется символ '', а аргументы и результат импликации обозначаются '0' (ложное значение, false) и '1' (истинное значение, true). По определению импликации:
Когда логическое выражение содержит несколько импликаций, то при отсутствии скобок оно будет вычисляться слева направо. Например,
.
При наличии скобок сперва вычисляется выражение в скобках. Например,
.
Для заданного логического выражения определите, можно ли расставить в нем скобки так, чтобы значение логического выражения было ложно. Если это возможно, требуется найти такую расстановку скобок.
Первая строка содержит целое число n (1 ≤ n ≤ 100000) — количество аргументов в логическом выражении.
Вторая строка содержит n чисел a1, a2, ..., an (), обозначающих значения аргументов в выражении в порядке следования.
Выведите "NO" (без кавычек), если расставить в выражении скобки так, чтобы его значение равнялось 0, невозможно.
Иначе выведите "YES" в первой строке и логическое выражение с нужной расстановкой скобок во второй строке.
Выражение должно содержать только символы '0', '1', '-' (символ с ASCII кодом 45), '>' (символ с ASCII кодом 62), '(' и ')'. Символы '-' и '>' могут встречаться в выражении только в паре ("->") и обозначают импликацию. Суммарное количество логических аргументов (т. е. цифр '0' и '1') в выражении должно равняться n. Порядок следования цифр в выражении слева направо должен совпадать с a1, a2, ..., an.
Выражение должно быть правильным. Более формально, правильное выражение определяется следующим образом:
Общее количество символов в полученном выражении не должно превысить 106.
Если возможных ответов несколько, разрешается вывести любой.
4
0 1 1 0
YES
(((0)->1)->(1->0))
2
1 1
NO
1
0
YES
0
Название |
---|