import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.math.BigDecimal;
import java.util.Arrays;

public class Main{
        
    public static void main(String[] args)throws IOException{
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    }
    
    static BufferedReader br;
    static StringTokenizer st = new StringTokenizer("");
    static String next()throws IOException{
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    }
    static int nextInt()throws IOException{
	return Integer.parseInt(next());
    }
    static long nextLong()throws IOException{
	return Long.parseLong(next());
    }
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringTokenizer; StringTokenizer java.util import java.math.BigDecimal; BigDecimal java.math import java.util.Arrays; Arrays java.util public class Main{
        
    public static void main(String[] args)throws IOException{
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    }
    
    static BufferedReader br;
    static StringTokenizer st = new StringTokenizer("");
    static String next()throws IOException{
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    }
    static int nextInt()throws IOException{
	return Integer.parseInt(next());
    }
    static long nextLong()throws IOException{
	return Long.parseLong(next());
    }
} Main static BufferedReader br; br static StringTokenizer st = new StringTokenizer(""); st new StringTokenizer("") public static void main(String[] args)throws IOException{
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    } main {
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    } br = new BufferedReader(new InputStreamReader(System.in)) br new BufferedReader(new InputStreamReader(System.in)) PrintWriter out = new PrintWriter(System.out); out new PrintWriter(System.out) int n = nextInt(); n nextInt() nextInt int v[] = new int[n]; v new int[n] n for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	} int i = 0; int i = 0; i 0 i<n i n i++ i++ i {
	    v[i] = nextInt();
	} {
	    v[i] = nextInt();
	} v[i] = nextInt() v[i] v i nextInt() nextInt if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	} n==1 n 1 {
	    out.println(v[0]);
	} out.println(v[0]) out.println out v[0] v 0 if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	} n==2 n 2 {
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	} out.println((double)(v[0]*v[1])/(double)(v[0]+v[1])) out.println out (double)(v[0]*v[1])/(double)(v[0]+v[1]) (double)(v[0]*v[1]) v[0] v 0 v[1] v 1 (double)(v[0]+v[1]) v[0] v 0 v[1] v 1 {
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	} long x = v[0]*v[1]; x v[0]*v[1] v[0] v 0 v[1] v 1 long y = v[0]+v[1]; y v[0]+v[1] v[0] v 0 v[1] v 1 BigDecimal a = new BigDecimal(""+x); a new BigDecimal(""+x) BigDecimal b = new BigDecimal(""+y); b new BigDecimal(""+y) BigDecimal xt; xt for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    } int i = 2; int i = 2; i 2 i<n i n i++ i++ i {
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    } {
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    } xt = new BigDecimal(""+v[i]) xt new BigDecimal(""+v[i]) b = b.multiply(xt).add(a) b b.multiply(xt).add(a) b.multiply(xt).add b.multiply(xt) b.multiply b xt a a = a.multiply(xt) a a.multiply(xt) a.multiply a xt double t1 = a.doubleValue(); t1 a.doubleValue() a.doubleValue a double t2 = b.doubleValue(); t2 b.doubleValue() b.doubleValue b out.println(t1/t2) out.println out t1/t2 t1 t2 out.close() out.close out String[] args args static String next()throws IOException{
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    } next {
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    } while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	} !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
	    st = new StringTokenizer(br.readLine());
	} st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st static int nextInt()throws IOException{
	return Integer.parseInt(next());
    } nextInt {
	return Integer.parseInt(next());
    } return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next static long nextLong()throws IOException{
	return Long.parseLong(next());
    } nextLong {
	return Long.parseLong(next());
    } return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next public class Main{
        
    public static void main(String[] args)throws IOException{
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    }
    
    static BufferedReader br;
    static StringTokenizer st = new StringTokenizer("");
    static String next()throws IOException{
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    }
    static int nextInt()throws IOException{
	return Integer.parseInt(next());
    }
    static long nextLong()throws IOException{
	return Long.parseLong(next());
    }
} public class Main{
        
    public static void main(String[] args)throws IOException{
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    }
    
    static BufferedReader br;
    static StringTokenizer st = new StringTokenizer("");
    static String next()throws IOException{
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    }
    static int nextInt()throws IOException{
	return Integer.parseInt(next());
    }
    static long nextLong()throws IOException{
	return Long.parseLong(next());
    }
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.math.BigDecimal;
import java.util.Arrays;

public class Main{
        
    public static void main(String[] args)throws IOException{
	br = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
	int n = nextInt();
	int v[] = new int[n];
        for(int i = 0; i<n;i++){
	    v[i] = nextInt();
	}
	if(n==1){
	    out.println(v[0]);
	}else if(n==2){
	    out.println((double)(v[0]*v[1])/(double)(v[0]+v[1]));
	}else{
	    long x = v[0]*v[1];
	    long y = v[0]+v[1];
	    BigDecimal a = new BigDecimal(""+x);
	    BigDecimal b = new BigDecimal(""+y);
	    BigDecimal xt;
	    for(int i = 2;i<n;i++){
		xt = new BigDecimal(""+v[i]);
	        b = b.multiply(xt).add(a);
		a = a.multiply(xt); 
	    }
	    double t1 = a.doubleValue();
	    double t2 = b.doubleValue();
	    out.println(t1/t2);
	}
	out.close();
    }
    
    static BufferedReader br;
    static StringTokenizer st = new StringTokenizer("");
    static String next()throws IOException{
	while(!st.hasMoreTokens()){
	    st = new StringTokenizer(br.readLine());
	}
	return st.nextToken();
    }
    static int nextInt()throws IOException{
	return Integer.parseInt(next());
    }
    static long nextLong()throws IOException{
	return Long.parseLong(next());
    }
}