P0520

3-sided dice

3-sided dice

一个骰子有 33 个面(记作 A,B,CA, B, C 面),33 个面上分别有 33 个数字。

本题中先给出了 33 个骰子,每个骰子给出 33 个面的数字,并且保证对于每个骰子,33 个面的数字和为 1000010000。之后再给出一个我们希望得到的 A,B,CA, B, C 面的结果,然后希望你给 33 个骰子分配概率:第一个骰子分配概率 p1p_1,第二个 p2p_2,第三个 p3p_3,满足

  1. p1+p2+p3=1p_1+p_2+p_3=1,且 p1,p2,p3p_1, p_2, p_3 都严格大于 00;
  2. 33 个骰子的每个面的期望和等于给出的那个面的期望。

例如,样例的第一组数据中给出的三个骰子为

0 0 10000
0 10000 0
10000 0 0

即骰子 11 为 A(0),B(0),C(10000)A(0), B(0), C(10000),骰子 22 为 A(0),B(10000),C(0)A(0), B(10000), C(0),骰子 33 为 A(10000),B(0),C(0)A(10000), B(0), C(0),目标为 A(3000),B(4000),C(3000)A(3000), B(4000), C(3000)。

于是我们可以分配 p1=310p_1=\dfrac{3}{10},p2=410p_2=\dfrac{4}{10},p3=310p_3=\dfrac{3}{10},这样

A 面期望=p1×0+p2×0+p3×10000=3000,B 面期望=p1×0+p2×10000+p3×0=4000,C 面期望=p1×10000+p2×0+p3×0=3000.\begin{aligned} A\ \text{面期望} &= p_1\times 0+p_2\times 0+p_3\times 10000 = 3000,\\ B\ \text{面期望} &= p_1\times 0+p_2\times 10000+p_3\times 0 = 4000,\\ C\ \text{面期望} &= p_1\times 10000+p_2\times 0+p_3\times 0 = 3000. \end{aligned}

输入格式

输入包含多组数据,每组数据之间用一个空行分隔。

每组数据由四行组成:前三行描述给出的 33 个骰子,最后一行描述希望模拟出的骰子。每行包含 33 个空格分隔的整数,表示该骰子 A,B,CA, B, C 面的点数(即掷出结果 1,2,31, 2, 3 的概率的 1000010000 倍)。

当读到一行 33 个 00 时,表示数据结束(该行之前同样有一个空行)。

输出格式

对于每组数据输出一行:如果可以分配 p1,p2,p3p_1, p_2, p_3 满足以上条件,则输出 YES,否则输出 NO。

样例输入

0 0 10000
0 10000 0
10000 0 0
3000 4000 3000

0 0 10000
0 10000 0
3000 4000 3000
10000 0 0

0 0 0

样例输出

YES
NO

样例解释

第一组数据的构造方法见题目描述。第二组数据无论如何分配概率都无法满足条件,因此输出 NO。

数据范围

  • 每行 33 个整数都在 00 到 1000010000 之间,且这 33 个数之和为 1000010000。

来源与许可

本题题面与测试数据整理自 BZOJ 2271。

样例 1

输入

0 0 10000
0 10000 0
10000 0 0
3000 4000 3000

0 0 10000
0 10000 0
3000 4000 3000
10000 0 0

0 0 0

输出

YES
NO