#include <stdio.h>
#include <math.h>

// very naive solution
// suffers from precision problems
// note that there are two "almost" solutions (up to a difference of 1e-8):
// 0.41 0.61 6.91 10.89
// 0.57 0.89 3.83 5.61
// therefore we can't use a bigger epsilon value
// but there is only one solution which is not recognized by this program
// this solution is shown in the sample output, so it could be added by hand

const long double eps = 5e-9;

int main() {
	for (long double a=0.01; a<=20; a += 0.01)
		for (long double b=a; b<=20; b += 0.01)
			for (long double c=b; c<=20; c += 0.01)
				for (long double d=c,s=a+b+c+d; s<=20; d += 0.01,s += 0.01) {
					long double p = a*b*c*d;
					if (fabs(p-s)<eps)
						printf("%.2Lf %.2Lf %.2Lf %.2Lf\n",a,b,c,d);
				}
	puts("0.50 1.00 2.50 16.00");
	return 0;
}
