CF847C Sum of Nestings

题目描述

我们定义一个括号序列是规则的当且仅当存在某种方式可以将字符`+`和`1`插入其中使得其成为一个合法的表达式。比如`(()())`是规则的因为我们可以将它变成`((1+1)+(1+1))`的形式,而这个形式是一个合法的表达式。此外,`()()()`、`(())`、`()`也是规则的括号序列。相反,`)(`、`(()`、`())(()`不是规则的括号序列。 在这个问题中,你被给予了两个数$n$和$k$,你的任务是构建一个规则的括号序列,使得它恰好含有$n$对括号并且恰好含有$k$对嵌套。 比如,`()(())`含有$3$对括号且它的嵌套对数为$1$,而`(((())))`含有$4$对括号且它的嵌套对数为$6=3+2+1$。

输入格式

The first line contains two integers $ n $ and $ k $ ( $ 1

输出格式

Print the required regular bracket sequence consisting of round brackets. If there is no solution print "Impossible" (without quotes).

说明/提示

The first example is examined in the statement. In the second example the answer is "(((())))". The nesting of the first opening bracket is $ 0 $ , the nesting of the second is $ 1 $ , the nesting of the third is $ 2 $ , the nesting of fourth is $ 3 $ . So the total sum of nestings equals to $ 0+1+2+3=6 $ . In the third it is impossible to construct a regular bracket sequence, because the maximum possible total sum of nestings for two opening brackets equals to $ 1 $ . This total sum of nestings is obtained for the sequence "(())".