Problem:
Score : 200 points

Problem Statement

Given is a sequence of N integers A_1, \ldots, A_N.

Find the (multiplicative) inverse of the sum of the inverses of these numbers, \frac{1}{\frac{1}{A_1} + \ldots + \frac{1}{A_N}}.

Constraints

1 \leq N \leq 100

1 \leq A_i \leq 1000

Input

Input is given from Standard Input in the following format:

N
A_1 A_2 \ldots A_N

Output

Print a decimal number (or an integer) representing the value of \frac{1}{\frac{1}{A_1} + \ldots + \frac{1}{A_N}}.

Your output will be judged correct when its absolute or relative error from the judge's output is at most 10^{-5}.

Sample Input 1

2
10 30

Sample Output 1

7.5

\frac{1}{\frac{1}{10} + \frac{1}{30}} = \frac{1}{\frac{4}{30}} = \frac{30}{4} = 7.5.

Printing 7.50001, 7.49999, and so on will also be accepted.

Sample Input 2

3
200 200 200

Sample Output 2

66.66666666666667

\frac{1}{\frac{1}{200} + \frac{1}{200} + \frac{1}{200}} = \frac{1}{\frac{3}{200}} = \frac{200}{3} = 66.6666....

Printing 6.66666e+1 and so on will also be accepted.

Sample Input 3

1
1000

Sample Output 3

1000

\frac{1}{\frac{1}{1000}} = 1000.

Printing +1000.0 and so on will also be accepted.

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <bits/stdc++.h>

using namespace std;

#define FO(x) {freopen(#x".in", "r", stdin); freopen(#x".out", "w", stdout);}
#define max(a, b) (a > b? a : b)
#define min(a, b) (a < b? a : b)

const int Maxn = 101;
int n, mu, zi;
double a[Maxn], tot;

inline int gcd(int a, int b) {
    if(a < b)
        return gcd(b, a);
    if(b == 0)
        return  a;
    return gcd(b, a % b);
}

int main() {
    cin >> n;
    for(int i = 1; i <= n; ++i) {
        cin >> a[i];   
    }
    zi = 1;
    mu = a[1];
    for(int i = 2; i <= n; ++i) {
        if(gcd(mu, a[i]) == a[i])
            zi += mu / a[i];
        else if(gcd(mu, a[i]) == mu)
            zi = zi * (a[i] / mu) + 1, mu = a[i];
        else {
            int nm = mu * a[i] / gcd(mu, a[i]);
            zi = zi * (nm / mu) + (nm / a[i]);
            mu = nm;
        }     
     //   cout << mu << ' ' << zi << endl;   
    }
    printf("%.5lf\n", 1.0 * mu / zi);
    return 0;
}