CF351A.Jeff and Rounding

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Jeff got 2n2n real numbers a1,a2,...,a2na_{1},a_{2},...,a_{2n} as a birthday present. The boy hates non-integer numbers, so he decided to slightly "adjust" the numbers he's got. Namely, Jeff consecutively executes nn operations, each of them goes as follows:

  • choose indexes ii and jj (ij)(i≠j) that haven't been chosen yet;
  • round element aia_{i} to the nearest integer that isn't more than aia_{i} (assign to aia_{i} :  ai ⌊\ a_{i} ⌋ );
  • round element aja_{j} to the nearest integer that isn't less than aja_{j} (assign to aja_{j} :  aj ⌈\ a_{j} ⌉ ).

Nevertheless, Jeff doesn't want to hurt the feelings of the person who gave him the sequence. That's why the boy wants to perform the operations so as to make the absolute value of the difference between the sum of elements before performing the operations and the sum of elements after performing the operations as small as possible. Help Jeff find the minimum absolute value of the difference.

输入格式

The first line contains integer nn (1<=n<=2000)(1<=n<=2000) . The next line contains 2n2n real numbers a1a_{1} , a2a_{2} , ...... , a2na_{2n} (0<=ai<=10000)(0<=a_{i}<=10000) , given with exactly three digits after the decimal point. The numbers are separated by spaces.

输出格式

In a single line print a single real number — the required difference with exactly three digits after the decimal point.

输入输出样例

  • 输入#1

    3
    0.000 0.500 0.750 1.000 2.000 3.000
    

    输出#1

    0.250
    
  • 输入#2

    3
    4469.000 6526.000 4864.000 9356.383 7490.000 995.896
    

    输出#2

    0.279
    

说明/提示

In the first test case you need to perform the operations as follows: (i=1,j=4)(i=1,j=4) , (i=2,j=3)(i=2,j=3) , (i=5,j=6)(i=5,j=6) . In this case, the difference will equal (0+0.5+0.75+1+2+3)(0+0+1+1+2+3)=0.25|(0+0.5+0.75+1+2+3)-(0+0+1+1+2+3)|=0.25 .

首页