宝石交易(gem)
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
看完了《游戏人生》以后,A 忍不住和他的好朋友 B、C 在游戏中进行许多轮决斗。当然,为了游戏的趣味性,他们每一轮决斗都会有一定的赌注。经过许多轮艰难的战斗后,A、B、C 之间互有胜负。现在需要结算一下他们的输赢。
宝石,是这个游戏中最重要的物资,分为许多种。不同种类的稀缺度不同。无色宝石作为基础物资,通常被用来衡量其他宝石的价值。通常来说 个七彩宝石的价值 = 个五色宝石 = 个三色宝石= 个双色宝石 = 个单色宝石 = 个无色宝石。A、B、C 三人拥有每种宝石的数量如下:
人名 | 七彩宝石 | 五色宝石 | 三色宝石 | 双色宝石 | 单色宝石 | 无色宝石 |
---|---|---|---|---|---|---|
A | ||||||
B | ||||||
C |
A,B,C 三人会记录游戏过程中的胜负关系,从而知道每个人之间分别需要支付多少宝石,并且会在最后用宝石完成结算。如果能结算完成,最少有多少个宝石被交易?如果不能结算完成,则输出 impossible
(不包含引号)。
注意: 无论一个什么种类的宝石被拿给另一个人,都算一次交易,多个宝石算多次交易。
输入格式
输入的第一行包括三个整数:。
代表 A 欠 B 的无色宝石个数(如果 是负数,说明是 B 欠了 A);
代表 B 欠 C 的无色宝石个数(如果 是负数,说明是 C 欠了 B);
代表 C 欠 A 的无色宝石个数(如果 是负数,说明是 A 欠了 C);
接下来有三行,每行 个数 ,表示每个人拥有的每种宝石的数量。
输出格式
如果能够结算完成,则输出需要交易宝石的最少次数;如果不能结算完成,则输出 impossible
。
10 0 0
0 1 0 0 0 0
0 0 0 3 0 10
0 0 3 0 0 0
5
-10 -10 -10
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0
提示
【样例 1 解释】
由 个七彩宝石的价值 = 个五色宝石 = 个三色宝石= 个双色宝石 = 个单色宝石 = 个无色宝石,可以得到
- 个七彩宝石价值 个无色宝石
- 个五色宝石价值 个无色宝石
- 个三色宝石价值 个无色宝石
- 个双色宝石价值 个无色宝石
- 个单色宝石价值 个无色宝石
样例 1,游戏最后 A 欠了 B, 个无色宝石。
一种比较直接的做法就是:A 将 个五色宝石支付给 B,而 B 将他身上的所有宝石,即 个双色宝石和 个无色宝石给 A,这个过程相当于 A 给了 B 玩家 个无色宝石,B 给了 A 玩家 个无色宝石,结算完成了。这样总共有 个宝石被交易。但这不是一种最好的做法。
做好的做法是:A 将 个五色宝石支付给 C,C 将 个三色宝石支付给 A,再将另一个三色宝石支付给 ,而 B 将一个双色宝石支付给 C。这个过程相当于 A 给了 C 玩家 个无色宝石,C 给了 A 玩家 个无色宝石,C 又给了 B 玩家 个无色宝石,最后 B 将 个无色宝石给 C,完成了结算。此时只有 5 个宝石被交易过,这是一种最好的交易方式。
【数据范围】
对于 的数据,有 。
对于 的数据,,保证 ,而且三个人总共拥有的宝石数量不会超过 。 另外,我们保证三人总共拥有的钞票面值总额不会超过1,000。