#P16624. [Ukiepc2023]International Travel

[Ukiepc2023]International Travel

题目描述

到达一个新国家时,人们经常首先关心:“这里能给手机充电吗?”如今,现代电子设备通常能够适应不同电压,但插座和插头的形状仍然是个问题。

在这个简化模型中:

  • 插头的每个插脚都是一个圆柱;
  • 插座的每个孔也是一个圆柱;
  • 忽略插脚长度和插孔深度,因此插头和插座都可以用平面上的三个圆表示;
  • 插孔带有弹性结构,因此插脚半径可以小于对应插孔半径。

插头和插座的三个圆中,第一个圆对应接地线,因此二者必须匹配。另两个圆对应交流电的两个相位,它们与插孔的对应关系可以互换。

给定一个插头和一个插座,判断该插头能否仅通过平移和旋转插入插座;若可以,还要构造插入后的插脚圆心坐标。

第二个样例的示意如下:

输入格式

输入共六行。

前三行描述插头,后三行描述插座。每行包含三个正整数 xi,yi,rix_i,y_i,r_i,分别表示一个插脚或插孔的圆心坐标和半径:

1xi,yi,ri104.1\le x_i,y_i,r_i\le 10^4.

在插头内部以及插座内部,任意两个圆均不相交也不相切。

插头和插座的第一个圆均对应接地线。

输出格式

若无法将插头插入插座,输出:

NO

否则,第一行输出:

YES

接下来三行,第 ii 行输出两个实数,表示第 ii 个插脚经过平移和旋转后的圆心坐标。输出顺序必须与输入中三个插脚的顺序一致。

输出将由 SPJ 检查,并在以下条件全部满足时判定正确:

  • 输出中任意两个插脚圆心之间的距离,与输入中对应两个插脚圆心之间的距离相比,绝对误差不超过 10610^{-6}
  • 输出配置确实能够仅由原插头经过平移和旋转得到,不能使用镜像翻转;
  • 每个插脚都位于其匹配插孔内部。允许将插脚半径缩小至多 10610^{-6} 后再进行包含关系检查;
  • 第一个插脚必须放入第一个插孔;第二、第三个插脚可以分别放入第二、第三个插孔,也可以交换对应关系。

若正确答案为 NO,则保证即使将所有插脚半径都缩小 2×1062\times 10^{-6},仍然不可能完成插入。

样例 1

输入

1 1 1
4 1 1
1 4 1
1 1 1
1 4 1
4 1 1

输出

YES
1 1
4 1
1 4

样例 2

输入

1 4 1
3 1 1
1 7 1
2 4 2
1 1 1
3 7 1

输出

YES
1.2 4.6
1 1
3 7

样例 3

输入

1 4 1
3 1 1
1 7 1
1 1 1
1 4 1
4 1 1

输出

NO