Andrey needs one more problem to conduct a programming contest. He has *n* friends who are always willing to help. He can ask some of them to come up with a contest problem. Andrey knows one value for each of his fiends — the probability that this friend will come up with a problem if Andrey asks him.

Help Andrey choose people to ask. As he needs only one problem, Andrey is going to be really upset if no one comes up with a problem or if he gets more than one problem from his friends. You need to choose such a set of people that maximizes the chances of Andrey not getting upset.
The first line contains a single integer *n* (1 ≤ *n* ≤ 100) — the number of Andrey's friends. The second line contains *n* real numbers *p*<sub class="lower-index">*i*</sub> (0.0 ≤ *p*<sub class="lower-index">*i*</sub> ≤ 1.0) — the probability that the *i*-th friend can come up with a problem. The probabilities are given with at most 6 digits after decimal point.
#include<stdio.h>

int main(){
    int n;
    float p[100];
    int i, j = 0, k;
    float max = 0, somaProdutoMenor = 0, produtoMenor, somaMenor[100];

    scanf("%d", &n);

    for(i = 0; i < n; i++){
        scanf("%f", &p[i]);

        if(p[i] > max){
            max = p[i];
        }

        if(p[i] <= 0.5){
            somaMenor[j++] = p[i];
        }
    }

    for(i = 0; i < j; i++){
        produtoMenor = somaMenor[i];
        for(k = 0; k < j; k++){
            if(i != k){
                produtoMenor *= (1-somaMenor[k]);
            }
        }
        somaProdutoMenor += produtoMenor;
    }

    if(somaProdutoMenor > max){
        max = somaProdutoMenor;
    }

    printf("%f\n", max);

    return 0;
}

	    		 		 		     		  	   				