#P4533. [CTSC2005] 玩具的重量

[CTSC2005] 玩具的重量

题目描述

冰冰有三个玩具:皮卡秋、维妮孙悟空和芭比娃娃。她并不知道这些玩具的具体重量(采用 NOI 单位),但是知道每个玩具重量的大概范围,如下表:

表 1. 玩具和它们的最小、最大可能重量|皮卡秋|维妮孙悟空|芭比娃娃 :-:|:-:|:-:|:-: 最小可能重量|11|22|33 最大可能重量|33|44|55

这些范围太粗略,冰冰希望能把它们缩小一些。

正好佳佳有一个电子天平,不仅可以告诉你左右两边是否一样重,还可以告诉你左边比右边重(或轻)多少。天平很大,左右两边都可以放任意多件玩具。

冰冰向佳佳借电子天平,希望能算出每个玩具的精确重量。佳佳为了考验冰冰,只允许她把任意一个玩具往天平的左侧和右侧最多各放一次。例如,如果她曾经把皮卡秋放在天平的左侧,则她不能再次把它放在天平的左侧。冰冰同意了。她一共称量了两次,结果如下(数字表示左边比右边重多少):

根据结果和表 1,可以确定三个玩具的重量一定是 3,4,33,4,3,也就是说,通过称量结果所得到的更新后的重量范围是:

表2. 根据称量结果所得到的精确范围 皮卡秋 维妮孙悟空 芭比娃娃
最小可能重量 33 44 33
最大可能重量

冰冰以后还会买很多很多玩具,她不想每次都自己计算每个玩具的重量。她需要写一个程序计算每个玩具最精确的重量下限和上限,你能帮她吗?

输入格式

输入文件第一行包含两个整数 nnmm,即玩具的个数和称量的次数。

第二行包含 2n2n 个数,第 2i12i-1 个数和第 2i2i 个数分别表示第 ii 个玩具的重量初始下限和初始上限。

以下 mm 行,每行前三个数 LRDL,R,D 表示左边的玩具数、右边的玩具数和左右两边的重量差(L,R0L, R \ge 0),接下来的 LL 个数为天平左边的玩具编号,再接下来的 RR 个数为天平右边的玩具编号。输入保证每个玩具在天平的每一边最多出现一次。

输出格式

输出文件包含 2n2n 个整数,第 2i12i-1 个数和第 2i2i 个数分别表示第 ii 个玩具的重量下限和上限,即最小可能的整数重量和最大可能的整数重量。如果无解(可能是天平坏了),只输出一个数 1-1

3 2
1 3 2 4 3 5
1 1 -1 1 2
1 1 1 2 3
3 3 4 4 3 3
3 1
1 5 2 5 1 3
2 1 1 1 2 3
1 2 2 3 2 3

提示

【样例解释】

样例 11 对应于题目描述中的例子。

在样例 22 中,冰冰有三个玩具,重量的原始范围为 151 \sim 5, 252 \sim 5, 131 \sim 3。只有一次称量,天平的左边是玩具 11 和玩具 22,右边是玩具 33。左边比右边重 11 个单位。根据此结果,可以判断三个玩具的重量范围为 121 \sim 2232 \sim 3232 \sim 3

【约定】

3n200,1m1003 \le n \le 200, 1 \le m \le 100,重量上限不超过 2000020000

50%50\% 的数据满足 3n101m53 \le n \le 10,1 \le m \le 5