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 Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.util.*;
import java.math.BigDecimal;

public class Main {
  public static void main(String[] args) {
    int N;
    int[] A;
    try(Scanner sc = new Scanner(System.in)) {
      N = sc.nextInt();
      A = new int[N];
      for(int i = 0; i < N; i++) {
        A[i] = sc.nextInt();
      }
    }
    double answer = solve(A);
    System.out.println(answer);
  }
  
  private static double solve(int[] a) {
    int n = a.length;
    if ( n == 0 ) {
      throw new IllegalStateException("n must be positive");
    }
    if ( n == 1 ) {
      return (double)a[0];
    }
    int n0 = (int)Math.ceil(n/2);
    int n1 = n - n0;
    double r = 0.0d;
    if ( n0 > 0 ) {
      int[] a0 = new int[n0];
      System.arraycopy(a, 0, a0, 0, n0);
      double s0 = solve(a0);
      r += 1/s0;
    }
    if ( n1 > 0 ) {
	  int[] a1 = new int[n1];
      System.arraycopy(a, n0, a1, 0, n1);
      double s1 = solve(a1);
      r += 1/s1;
    }
    return 1/r;
  }

}