思路:考虑将括号变成-1,1的序列.那么他们的值分别为+2,-2,0,0。 那么我们可以发现,如果a,b不相等,那么答案一定是NO。因为总和不是0,那么一定不是合法的序列。 如果d > 0 但 a == 0,那么答案也是NO。因为这样的话,我们的d中的左括号一定是多余的。 其他情况下,答案是YES。 一种构造合法序列的方式是: a,...,a,d,...,d,b,...,b,c,...,c
如果在括号序列中插入字符+和1就可以得到正确的算术表达式,那么这个括号序列就称为合法的括号序列。
例如,"”、"(())"和"()()"是合法的括号序列,因为填入内容后可以表示为((1))和(1)+(1),这都是合法的。
现在小红有a个"((",b个"))",c个"()",d个")("。小红想知道能否将这些括号串连成一个合法的括号序列。
你可以阅读样例解释获得更多信息。
每个测试文件均包含多组测试数据。
第一行输入一个整数T(1≤<T≤105)代表数据组数,每组测试数据描述如下:
在一行上输入四个整数a,b,c,d(0≤a,b,c,d≤109)代表小红的括号序列。
对于每组数据,如果能够将这些括号串连成一个合法的括号序列,在一行上输出YES ,否则输出NO。
输入
2
1 1 1 1
1 2 1 1
输出
YES
NO
说明
对于第一组测试数据,可以按照如下顺序拼接"(("+")("+"))"+"()”,填入内容后可以表示为((1)+(1))+(1),这是一个合法的括号序列。