#include // ver2.6.1 //#include // FFT用 //#include //#include //using boost::math::tools::brent_find_minima;//fmin(f,L,R,100)で最小値をmp(x,min)で取得 //using boost::multiprecision::cpp_int;//cpp_int (任意の長さのint) #define fmin brent_find_minima #define int long long #define endl "\n" #define ALL(v) (v).begin(),(v).end() #define Vi vector #define VVi vector #define VVVi vector #define Vm vector #define Vs vector #define Vd vector #define Pii pair #define Pdd pair #define VPii vector #define Tiii tuple #define VTiii vector #define PQi priority_queue #define PQir priority_queue,greater> #define pb push_back #define mp make_pair #define mt make_tuple #define itos to_string #define stoi stoll #define FI first #define SE second #define cYES cout<<"YES"<()) #define rep(i,a,b) for(int i=a;i=b;i--) #define dem(a,b) ((a+b-1)/(b)) #define Vin(a) rep(iI,0,a.size())cin>>a[iI] #define INF 3000000000000000000 // 3.0*10^18(MAXの1/3くらい) #define MAX LLONG_MAX #define PI 3.141592653589793238462 //#define MOD 1000000007 // 10^9 + 7 //int MOD = 998244353; // 変更したいときはこちら int MOD = 1000003; const double EPS = 1e-10; using namespace std; struct mint{int x;mint(int x=0):x((x%MOD+MOD)%MOD){} mint operator-()const{return mint(-x);} mint& operator+=(const mint a){if((x+=a.x)>=MOD)x-=MOD;return*this;} mint& operator-=(const mint a){if((x+=MOD-a.x)>=MOD)x-=MOD;return*this;} mint& operator*=(const mint a){(x*=a.x)%=MOD;return*this;} mint operator+(const mint a)const{return mint(*this)+=a;} mint operator-(const mint a)const{return mint(*this)-=a;} mint operator*(const mint a)const{return mint(*this)*=a;} mint pow(int t)const{if(!t)return 1;mint a=pow(t>>1);a*=a;if(t&1)a*=*this;return a;} mint inv()const{return pow(MOD-2);} mint& operator/=(const mint a){return*this*=a.inv();} mint operator/(const mint a)const{return mint(*this)/=a;}}; istream& operator>>(istream& is, const mint& a) {return is >> a.x;} ostream& operator<<(ostream& os, const mint& a) {return os << a.x;} /* デバッグ用 */ void Vout(auto a){if(a.size()==0) cout<<"."<0)cout<0)cerr<n)return 0;if((n-r)n-r;--i){a=a*i;}for(int i=1;i> n; string s; double sei = 0.0,syou = 0.0; rep(i,0,n){ cin >> s; int made = -1; bool mi = 0; if(s[0]=='-') mi = 1; rep(j,0,s.size()){ if(s[j]=='.') made = j; } if(made == -1) { int n = stoi(s); sei += n; } else { //cout << s.substr(0,made) << endl; int n = stoi(s.substr(0,made)); sei += n; s = s.substr(made+1,s.size()-made-1); double ten = pow(10,(-1)*((int)s.size())); double now = stoi(s); now *= ten; if(mi) syou -= now; else syou += now; } } n = 0; if(syou >= 0) { rep(i,0,120){ if(i <= syou && syou < i+1){ n = i; } } syou -= n; } else { repreq(i,0,-120){ if(i-1 < syou && syou <= i){ n = i; } } syou -= n; } sei += n; syou *= 10000000000; int ans1 = sei; int ans2 = syou; cout << ans1 <<'.'<< ans2; rep(i,0,10-(itos(ans2)).size()) cout << '0'; cout << endl; return 0; }