
ZOJ Problem Set  3930
... A tabletop roleplaying game, or penandpaper roleplaying game, or tabletalk roleplaying game is a form of roleplaying game (RPG) in which the participants describe their characters' actions through speech. Participants determine the actions of their characters based on their characterization, and the actions will succeed or fail according to a formal system of rules and guidelines. Within the rules, players have the freedom to improvise. Their choices shape the direction and outcome of the game. The outcomes of some actions are determined by the rules of the game. For example, while looking around the room, a character may or may not notice an important object or secret doorway, depending on the character's powers of perception. This usually involves rolling dice, and comparing the number rolled to their character's statistics to see whether the action was successful. Typically, the higher the character's score in a particular attribute, the higher their probability of success. Combat is resolved in a similar manner, depending on the character's combat skills and physical attributes. From Wikipedia, by Sargoth. License: CCbysa 3.0. Dice notation (also known as dice algebra, common dice notation, RPG dice notation, and several other titles) is a system to represent different combinations of dice in roleplaying games using simple algebralike notation such as "2d6 + 12". In most roleplaying games, dice rolls required by the system are given in the form of "NdX". N and X are variables, separated by the letter "d", which stands for dice. N is the number of dice to be rolled (usually omitted if 1), and X is the number of faces of each dice. For example, if a game would call for a roll of "d4" or "1d4", this would mean roll a 4sided dice. While "3d6" would mean roll three sixsided dices. An Xsided dice can get an integer between 1 and X with equal probability. To this basic notation, an additive modifier can be appended, yielding expressions of the form of "NdX + B". Here, B is a number to be added to the sum of the rolls. We can use a minus sign ("") to indicate subtraction. So, "1d20  10" would indicate a roll of a single 20sided dice with 10 being subtracted from the result. Further more, we can use multiplication ("*") or division ("/") to do some more compilcated calculations like "(2d6 + 5) * 10 / (12  3d6)". To be specific, here is a standard BNF describes the dice notation: <notation> ::= <term> "+" <notation>  <term> "" <notation>  <term> <term> ::= <factor> "*" <term>  <factor> "/" <term>  <factor> <factor> ::= "(" <notation> ")"  <integer>  <dice> <integer> ::= <digit> <integer>  <digit> <digit> ::= "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" <dice> ::= <integer> "d" <integer>  "d" <integer> To have a clearer result of a dice notation in a game, our poor player, Saika, decides to write a program as a dice bot. To standardize the output information, the program needs to generate a format string from user's input string. It should:
However, Saika is fighting against some indescribable monsters now. She has no time to write this program by herself. Please help her to finish it. InputThere are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case: There is a line contains a valid dice notation. The length of the notation won't exceed 2000. OutputFor each test case, output the format string. Sample Input3 d6+1 ((2d6) +5)*((12* 3d6)) 2d10 * d100 Sample Output[d6] + 1 = [Result] ((([d6] + [d6])) + 5) * ((12 * ([d6] + [d6] + [d6]))) = [Result] ([d10] + [d10]) * [d100] = [Result] Author: DAI, Longao Source: The 16th Zhejiang University Programming Contest 