Brackets
Brackets
Take the string B1 + B2 + . . . + BN (i.e., concatenate the elements of the bracketized sequence). Bob
wonders whether he can bracketize A so that the resulting string is a valid bracket sequence. A bracket
sequence is valid if ’1’ and ’+’ characters can be inserted into it so that it becomes a valid mathematical
expression. For example, ”(((())))” is a valid bracket sequence if A = (1, 3, 4).
Write a program that finds such a bracket sequence or determines that it’s impossible!
☞ Among the attachments of this task you may find a template file brackets.* with a sample
incomplete implementation.
Input
The first line contains the only integer N . The second line contains N integers Ai .
Output
You need to print a valid bracket sequence created from A or −1 if it’s not possible to create one.
If there are multiple correct bracket sequences, output any.
Constraints
• 1 ≤ N ≤ 500.
• 1 ≤ Ai for each i = 0 . . . N − 1.
• A1 + A2 + . . . + AN ≤ 50 000.
Scoring
Your program will be tested against several test cases grouped in subtasks. In order to obtain the score
of a subtask, your program needs to correctly solve all of its test cases.
brackets Page 1 of 2
– Subtask 1 (0 points) Examples.
– Subtask 2 (20 points) N ≤2
– Subtask 3 (30 points) N ≤ 20 and A1 + A2 + . . . + AN ≤ 200.
– Subtask 4 (50 points) No additional limitations.
Examples
input output
3 (((() ) ) )
1 3 4
4 (() ) ()
2 2 1 1
2 -1
2 1
Explanation
The first sample case is explained in the statement.
In the second sample case the bracketized sequence is ”((”, ”))”, ”(”, ”)”.
brackets Page 2 of 2