A. Jeff and Roundingtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output
real numbers a, a, ..., an 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 n operations, each of them goes as follows:
and j i ≠
j) that haven't been chosen yet;
- i to the nearest integer that isn't more than ai (assign to ai: ai ⌋);
- j to the nearest integer that isn't less than aj (assign to aj: aj ⌉).
Input
n ≤ 2000). The next line contains n real numbers a, a, , an ai ≤ 10000), given with exactly three digits after the decimal point. The numbers are separated by spaces.
Output
Sample test(s)input
outputinputoutputNote = 1, j = 4), i = 2, j = 3), i = 5, j = 6). In this case, the difference will equal .
#include <stdio.h>#include <iostream>#include <math.h>#include <string.h>using namespace std;int main (){ int n,s1,s2,i; while(scanf("%d",&n)!=EOF){ double sum,x; for(i=0,s1=0,s2=0,sum=0;i<n+n;i++){ scanf("%lf",&x); int temp=(int)x; x=x-(double)temp; if(x!=0) sum+=x,s1++; else s2++; } int k=min(s1,n); double ans=100000000.0; for(i=0;i<=k;i++){ if(i+s2>=n){ ans=min(ans,fabs(sum-i*1.0)); } } printf("%.3f\n",ans); } return 0;}