P4533 [CTSC2005] 玩具的重量
题目描述
冰冰有三个玩具:皮卡秋、维妮孙悟空和芭比娃娃。她并不知道这些玩具的具体重量(采用 NOI 单位),但是知道每个玩具重量的大概范围,如下表:
表 1.
玩具和它们的最小、最大可能重量|皮卡秋|维妮孙悟空|芭比娃娃
:-:|:-:|:-:|:-:
最小可能重量|$1$|$2$|$3$
最大可能重量|$3$|$4$|$5$
这些范围太粗略,冰冰希望能把它们缩小一些。
正好佳佳有一个电子天平,不仅可以告诉你左右两边是否一样重,还可以告诉你左边比右边重(或轻)多少。天平很大,左右两边都可以放任意多件玩具。
冰冰向佳佳借电子天平,希望能算出每个玩具的精确重量。佳佳为了考验冰冰,只允许她把任意一个玩具往天平的左侧和右侧最多各放一次。例如,如果她曾经把皮卡秋放在天平的左侧,则她不能再次把它放在天平的左侧。冰冰同意了。她一共称量了两次,结果如下(数字表示左边比右边重多少):

根据结果和表 1,可以确定三个玩具的重量一定是 $3,4,3$,也就是说,通过称量结果所得到的更新后的重量范围是:
表2. 根据称量结果所得到的精确范围|皮卡秋|维妮孙悟空|芭比娃娃
:-:|:-:|:-:|:-:
最小可能重量|$3$|$4$|$3$
最大可能重量|$3$|$4$|$3$
冰冰以后还会买很多很多玩具,她不想每次都自己计算每个玩具的重量。她需要写一个程序计算每个玩具最精确的重量下限和上限,你能帮她吗?
输入格式
输入文件第一行包含两个整数 $n$ 和 $m$,即玩具的个数和称量的次数。
第二行包含 $2n$ 个数,第 $2i-1$ 个数和第 $2i$ 个数分别表示第 $i$ 个玩具的重量初始下限和初始上限。
以下 $m$ 行,每行前三个数 $L,R,D$ 表示左边的玩具数、右边的玩具数和左右两边的重量差($L, R \ge 0$),接下来的 $L$ 个数为天平左边的玩具编号,再接下来的 $R$ 个数为天平右边的玩具编号。输入保证每个玩具在天平的每一边最多出现一次。
输出格式
输出文件包含 $2n$ 个整数,第 $2i-1$ 个数和第 $2i$ 个数分别表示第 $i$ 个玩具的重量下限和上限,即最小可能的整数重量和最大可能的整数重量。如果无解(可能是天平坏了),只输出一个数 $-1$。
说明/提示
【样例解释】
样例 $1$ 对应于题目描述中的例子。
在样例 $2$ 中,冰冰有三个玩具,重量的原始范围为 $1 \sim 5$, $2 \sim 5$, $1 \sim 3$。只有一次称量,天平的左边是玩具 $1$ 和玩具 $2$,右边是玩具 $3$。左边比右边重 $1$ 个单位。根据此结果,可以判断三个玩具的重量范围为 $1 \sim 2$,$2 \sim 3$ 和 $2 \sim 3$。
【约定】
$3 \le n \le 200, 1 \le m \le 100$,重量上限不超过 $20000$。
$50\%$ 的数据满足 $3 \le n \le 10,1 \le m \le 5$。