#P2081. 拿可恶的队长没办法

拿可恶的队长没办法

Chanming 队长最讨厌浮点型的数据,如果要加入GDUTACM校队,就必须要注意队长的个人癖好,不要触犯,否则你早晚有一天死在他的魔爪之下呦。好啦,我现在教给你一种处理数据的方法,如果chanming队长给了你2*n 个数,按顺序标记为 A1, A2,A3……A 2n<o:p></o:p>

处理数据的步骤如下:<o:p></o:p>

  1,先选择俩个数i ,j , i不等于并且 Ai ,Aj 没有被改变过。<o:p></o:p>

  2,然后将 Ai 变成最大且不大于Ai的整数;<o:p></o:p>

  3,然后将 Aj 变成最小且不小于 Aj 的整数;<o:p></o:p>

      执行N次,你就把小数全改变成了整数。减小了Chanming队长看见小数点发飙的几率。但是,很不幸的告诉你,请不要忽视 Chanming队长的口算能力。所以呢,你需要巧妙的选择i j 组合~~既可以通过我教给你的方法把小数变成整数,又能保证改变之后误差最小。<o:p></o:p>

      换句话,记操作后A1+a……A2n  的和为newsum<o:p></o:p>

                操作前A1+a……A2n  SUM,<o:p></o:p>

                | SUM -newsum | 要尽可能的最小,输出最小值。<o:p></o:p>

好吧,给紧张的你举个例子吧~~<o:p></o:p>

  6<o:p></o:p>

 1.000  1.500  3.000  2.750  4.000  9.000<o:p></o:p>

     我呢先傻乎乎选择 i=1,j=5  然后又选择了 i=2,j=4 ,再选i=3j=6 哎呀,没有可以改变的数字了,哎呀,这样的操作后 得到的就是最小的误差,0.250 <o:p></o:p>

            | (1+1+3+3+4+9)-(1.000+1.500+3.000+2.750+4.000+9.000) | =0.250<o:p></o:p>

Input

  有T组测试数据
每一组:
   第一行,输入一个N (1<= N<= 20000);
   第二行,有2*N个数字,A1, A2,A3……A2n;0<= Ai <=1000000,且 保证 Ai含且仅含有三位小数。

Output

  输出答案,答案占一行,保留3位小数。

Sample Input

1
3
1.000  1.500  3.000  2.750  4.000  9.000

Sample Output

</p>
0.250

HINT

Source