#2023. 跷跷板
跷跷板
题目描述
游乐场的跷跷板以力矩相等原则判断是否平衡。即如果 (w_l d_l = w_r d_r),则认为跷跷板是平衡的。此处,(w_l)、(w_r) 分别表示跷跷板左右两侧的物体体重,(d_l)、(d_r) 分别表示左右两侧物体到跷跷板中央支点的距离。
将跷跷板扩展为多层结构:(w_l) 与 (w_r) 均可以用一个子跷跷板代替。此时当且仅当当前跷跷板左右力矩相等,且所有子跷跷板都平衡时,整个跷跷板才平衡。
输入格式
采用递归方式输入数据。每行数据描述一个跷跷板,包含 4 个用空格分隔的非负整数 (w_l,d_l,w_r,d_r)。当 (w_l=0) 时,表示左侧实际上是一个子跷跷板,其描述紧接在本行之后;当 (w_r=0) 时,表示右侧实际上是一个子跷跷板。如果左右两侧都是子跷跷板,则先描述左子跷跷板,再描述右子跷跷板。因此,多层跷跷板的数据按“先左后右,深度优先”的顺序给出。
输入保证恰好描述一棵完整的多层跷跷板;实际物体重量为正整数,数字 0 仅用于表示该侧为子跷跷板。
输出格式
如果该多层跷跷板为平衡的,输出 1,否则输出 0。输出末尾换行。
样例
输入 #1
0 1 0 3
0 3 0 2
4 1 2 2
6 1 3 2
3 4 2 6
输出 #1
1
数据范围
- (0 \le w_l,d_l,w_r,d_r \le 10000)。
- 每棵输入树的节点数不超过 1000。
- 保证输入合法,且除表示子跷跷板的 0 外,实际物体重量均大于 0。