#P16624. [Ukiepc2023]International Travel
[Ukiepc2023]International Travel
题目描述
到达一个新国家时,人们经常首先关心:“这里能给手机充电吗?”如今,现代电子设备通常能够适应不同电压,但插座和插头的形状仍然是个问题。
在这个简化模型中:
- 插头的每个插脚都是一个圆柱;
- 插座的每个孔也是一个圆柱;
- 忽略插脚长度和插孔深度,因此插头和插座都可以用平面上的三个圆表示;
- 插孔带有弹性结构,因此插脚半径可以小于对应插孔半径。
插头和插座的三个圆中,第一个圆对应接地线,因此二者必须匹配。另两个圆对应交流电的两个相位,它们与插孔的对应关系可以互换。
给定一个插头和一个插座,判断该插头能否仅通过平移和旋转插入插座;若可以,还要构造插入后的插脚圆心坐标。
第二个样例的示意如下:

输入格式
输入共六行。
前三行描述插头,后三行描述插座。每行包含三个正整数 ,分别表示一个插脚或插孔的圆心坐标和半径:
在插头内部以及插座内部,任意两个圆均不相交也不相切。
插头和插座的第一个圆均对应接地线。
输出格式
若无法将插头插入插座,输出:
NO
否则,第一行输出:
YES
接下来三行,第 行输出两个实数,表示第 个插脚经过平移和旋转后的圆心坐标。输出顺序必须与输入中三个插脚的顺序一致。
输出将由 SPJ 检查,并在以下条件全部满足时判定正确:
- 输出中任意两个插脚圆心之间的距离,与输入中对应两个插脚圆心之间的距离相比,绝对误差不超过 ;
- 输出配置确实能够仅由原插头经过平移和旋转得到,不能使用镜像翻转;
- 每个插脚都位于其匹配插孔内部。允许将插脚半径缩小至多 后再进行包含关系检查;
- 第一个插脚必须放入第一个插孔;第二、第三个插脚可以分别放入第二、第三个插孔,也可以交换对应关系。
若正确答案为 NO,则保证即使将所有插脚半径都缩小 ,仍然不可能完成插入。
样例 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