#include <iostream>
using namespace std;
double y(double a, double b, double c, double x) {
if (c == x && b + c + x != 0)
return ((a + b) * (a + c) * (a + x)) / (b + c + x);
if (c != x && 1 + b != 0 && 1 + a != 0 && a / (1 + b) + b / (1 + a) >= 0)
return sqrt(a / (1 + b) + b / (1 + a));
return -1e9 - 7;
}
signed main() {
double a, b, c, x, ans;
cin >> a >> b >> c >> x;
ans = y(a, b, c, x);
ans == -1e9 - 7 ? cout << "No solution" : cout << ans;
#include <iostream>
using namespace std;
double y(double a, double b, double c, double x) {
if (c == x && b + c + x != 0)
return ((a + b) * (a + c) * (a + x)) / (b + c + x);
if (c != x && 1 + b != 0 && 1 + a != 0 && a / (1 + b) + b / (1 + a) >= 0)
return sqrt(a / (1 + b) + b / (1 + a));
return -1e9 - 7;
}
signed main() {
double a, b, c, x, ans;
cin >> a >> b >> c >> x;
ans = y(a, b, c, x);
ans == -1e9 - 7 ? cout << "No solution" : cout << ans;
}