|
|||||||
|
Minuses
The operation of subtraction is not associative, e.g. (5-2)-1=2, but 5-(2-1)=4, therefore (5-2)-1<>5-(2-1). It implies that the value of the expression of the form 5-2-1 depends on the order of performing subtractions. In lack of brackets we assume that the operations are performed from left to right, i.e. the expression 5-2-1 denotes (5-2)-1. We are given an expression of the form x1 +/- x2 +/- ... +/- xn, where each +/- denotes either + (plus) or - (minus), and x1,x2,...,xn denote (pairwise) distinct variables. In an expression of the form x1-x2-...-xn we want to insert brackets in such a way as to obtain an expression equivalent to the given one. For example, if we want to obtain an expression equivalent to the expression x1-x2-x3+x4+x5-x6+x7 we may insert brackets into x1-x2-x3-x4-x5-x6-x7 as follows: ((x1-x2)-(x3-x4-x5))-(x6-x7). Note: Brackets that surround none or only one variable are not allowed. TaskWrite a program which:
InputIn the first line of the text file min.in there is one integer n, 2<=n<=1 000 000. This is the number of variables in the given expression. In each of the following n-1 lines there is one character + or -. In the i-th line there is the sign appearing between xi-1 and xi in the given expression.OutputIn the first line of the output text file min.out your program should write the requested way of bracket insertion into the expression x1-x2-...-xn. Only brackets and minuses (without spaces between them) should be written, and the variables x1,x2,...,xn ought to be skipped. You may assume that for the test data there is always a solution. If there exist many possible solutions your program should write one of them.ExampleFor the following input file min.in:7 - - + + - +a correct answer is in the following output file min.out: ((-)-(--))-(-) Print friendly version |