构造性证明
题目描述
关于数学定理证明,也有高下之分。最暴力的证明方法是“构造性证明”,即当需要证明某种解存在时,直接把解构造出来,而不是仅通过推理证明解之存在。
下面有一个定理:
设ai(i=1,...,5)均为正实数。则一定存在4个互不相同的下标 i、j、k、l,使得|ai/aj - ak/al|<1/2。
作为程序员,就请你编写程序构造出正确的下标,验证这个结论。
输入
输入一行中顺序给出5个正实数。为保证计算中不产生浮点溢出,我们令输入的数字在[10^-10,10^10]区间内,且小数点不超过10位小数。
输出
在一行中首先输出使得定理结论成立的下标有多少套,随后输出最小的一套下标。数字间以1个空格分隔,行尾不得有多余空格。
输入样例
3.12 5.27 0.0007 9825.4413 10
输出样例
18 1 4 3 2