#P15896. [Roi2021 Team]The Math of Sailing / 航海数学

[Roi2021 Team]The Math of Sailing / 航海数学

题目描述

Polycarp 船长一直梦想拥有一艘三桅帆船。如今他终于买下了一艘漂亮的卡拉克帆船 Pulcheria,但这艘船没有帆,他需要另行准备。

这艘船恰好需要四张帆:后桅一张、前桅一张、中桅两张。Polycarp 恰好有四块布料,面积分别为 t1,t2,t3,t4t_1,t_2,t_3,t_4。他可以按任意顺序把布料用于四张帆,也可以在使用前把某些布料裁小。

设前桅帆大小为 a1a_1,中桅两张帆大小为 a2,a3a_2,a_3,后桅帆大小为 a4a_4。船的机动性定义为:

a1a4+a2+a3,a_1a_4+a_2+a_3,

稳定性定义为:

a1+a4+a2a3.a_1+a_4+a_2a_3.

为了安全航行,需要调整四张帆,使机动性等于稳定性:

a1a4+a2+a3=a1+a4+a2a3.a_1a_4+a_2+a_3=a_1+a_4+a_2a_3.

同时,为了最大舒适性,这两个相等的值要尽可能大。

请你给出布料分配与裁剪后的四张帆大小,使上述条件成立,并使公共值最大。

输入格式

输入一行四个整数 t1,t2,t3,t4t_1,t_2,t_3,t_4,表示四块布料的大小。

输出格式

第一行输出一个 1144 的排列 pp。第 ii 个数表示第 ii 张帆由哪一块原始布料裁剪而来。例如,如果第二张帆由第 44 块布料裁剪而来,则 p2=4p_2=4

第二行输出四个实数 a1,a2,a3,a4a_1,a_2,a_3,a_4,表示四张帆的最终大小。

要求 1ai1041 \le a_i \le 10^4,且每张帆不能大于其对应布料大小。输出不要求为整数。

若输出方案对应的机动性与稳定性距离最优值的绝对误差不超过 21062\cdot 10^{-6},且两者之间的差不超过 10610^{-6},则认为答案正确。

数据范围

1ti1041 \le t_i \le 10^4

样例 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