构造括号序列

题目描述

你需要构造一个长度大于等于 aa 并且 小于等于 bb 的括号序列 ss,使得 ss 中有 cc 对数对 (i,j)(i,j) 满足 0i<j<s0\le i < j < |s|sis_i 为左括号 (sjs_j 为右括号 )
如果无解输出 -1

输入格式

输入第 1111 个数 TT,表示数据组数。 接下来 TT 行,每行 33 个数 a,b,ca,b,c

输出格式

输出共 TT 行,每行一个仅包含左括号 ( 和右括号 ) 的括号串 ss。如果无解输出 -1

样例

输入

2
1 115 3
3 4 7

输出

((()
-1

数据范围

  • Subtask 1:a=1a=11b1051 \le b\le 10^5b2×105\sum{b}\le 2\times 10^5
  • Subtask 2:1ab1091\le a\le b\le 10^9a2×105\sum{a} \le 2\times 10^5

对于所有数据,满足:

  • 1ab1091\le a\le b\le 10^9
  • 1T1001\le T\le 100
  • 1c2501\le c\le 2^{50}

保证所有测试点均存在输出总长度不超过 5×1075 \times 10^7 个字符的正确答案。

  • 时间限制:2s
  • 空间限制:512 MB
  • 是否有 Special Judge:是

题解

考虑构造连续的 xx 个左括号和连续的 yy 个右括号,其中 y=xy=xy=x+1y=x+1
不难发现只要交换一个左括号和一个右括号即可构造出 cc 对合法括号对,且这种构造方案下生成的 cc 是连续的。
贪心求出长度为 bb 时的合法括号对数量的最大值然后判一下无解即可。
如果 aa 太大就在末尾放连续的左括号,显然不产生任何贡献。