#P15896. [Roi2021 Team]The Math of Sailing / 航海数学
[Roi2021 Team]The Math of Sailing / 航海数学
题目描述
Polycarp 船长一直梦想拥有一艘三桅帆船。如今他终于买下了一艘漂亮的卡拉克帆船 Pulcheria,但这艘船没有帆,他需要另行准备。
这艘船恰好需要四张帆:后桅一张、前桅一张、中桅两张。Polycarp 恰好有四块布料,面积分别为 。他可以按任意顺序把布料用于四张帆,也可以在使用前把某些布料裁小。
设前桅帆大小为 ,中桅两张帆大小为 ,后桅帆大小为 。船的机动性定义为:
稳定性定义为:
为了安全航行,需要调整四张帆,使机动性等于稳定性:
同时,为了最大舒适性,这两个相等的值要尽可能大。
请你给出布料分配与裁剪后的四张帆大小,使上述条件成立,并使公共值最大。
输入格式
输入一行四个整数 ,表示四块布料的大小。
输出格式
第一行输出一个 到 的排列 。第 个数表示第 张帆由哪一块原始布料裁剪而来。例如,如果第二张帆由第 块布料裁剪而来,则 。
第二行输出四个实数 ,表示四张帆的最终大小。
要求 ,且每张帆不能大于其对应布料大小。输出不要求为整数。
若输出方案对应的机动性与稳定性距离最优值的绝对误差不超过 ,且两者之间的差不超过 ,则认为答案正确。
数据范围
。
样例 1
输入:
1 1 1 1
输出:
1 2 3 4
1.0 1.0 1.0 1.0
样例 2
输入:
7 5 3 5
输出:
1 2 4 3
7.0 4.0 5.0 3.0
样例 3
输入:
2 3 4 5
输出:
1 2 3 4
2.0 2.3333333333 4 5