double max3(double,double,double);
double min3(double,double,double);
double max3(double a,double b,double c){
if(a>b) return a>c?a:c;
else return b>c?b:c;
}
double min3(double a,double b,double c){
if(a<b) return a<c?a:c;
else return b<c?b:c;
}
int main()
{
int n,j;
double MaxMupl;
double *Arr,*Max,*Min;
printf("Input the size of the array:");
scanf("%d",&n);
Arr=(double *)malloc(sizeof(double)*n);
Max=(double *)malloc(sizeof(double)*n);
Min=(double *)malloc(sizeof(double)*n);
for ( j=0;j<n;j++)
scanf("%lf",Arr+j);
Max[0]=Min[0]=MaxMupl=Arr[0];
for (int i=1;i<n;i++){
Max[i]=max3(Arr[i],Max[i-1]*Arr[i],Min[i-1]*Arr[i]);
Min[i]=min3(Arr[i],Max[i-1]*Arr[i],Min[i-1]*Arr[i]);
if(Max[i]>MaxMupl) MaxMupl=Max[i];
}
if(MaxMupl>0){
if(MaxMupl==(int)MaxMupl) printf("%d",(int)MaxMupl);
else printf("%.2lf",MaxMupl);
}
else printf("-1\n");
system("pause");
free(Arr);
free(Max);
free(Min);
return 0;
}