#include <stdio.h>
double S(double a, double b, double c)
{
double s = (a + b + c) / 2;
double p = s * (s - a) * (s - b) * (s - c);
double S = p, Sprev = 0;
while (S != Sprev) Sprev = S, S = (S + p / S) / 2;
return S;
}
int main(void)
{
printf("%.15g\n", S
(2, 2, 2)); printf("%.15g\n", S
(2, 3, 3)); printf("%.15g\n", S
(3, 4, 5)); printf("%.15g\n", S
(5, 5, 6));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgpkb3VibGUgUyhkb3VibGUgYSwgZG91YmxlIGIsIGRvdWJsZSBjKQp7CiAgICBkb3VibGUgcyA9IChhICsgYiArIGMpIC8gMjsKICAgIGRvdWJsZSBwID0gcyAqIChzIC0gYSkgKiAocyAtIGIpICogKHMgLSBjKTsKICAgIGRvdWJsZSBTID0gcCwgIFNwcmV2ID0gMDsKCiAgICB3aGlsZSAoUyAhPSBTcHJldikgU3ByZXYgPSBTLCBTID0gKFMgKyBwIC8gUykgLyAyOwogICAgcmV0dXJuIFM7Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIHByaW50ZigiJS4xNWdcbiIsIFMoMiwgMiwgMikpOwogICAgcHJpbnRmKCIlLjE1Z1xuIiwgUygyLCAzLCAzKSk7CiAgICBwcmludGYoIiUuMTVnXG4iLCBTKDMsIDQsIDUpKTsKICAgIHByaW50ZigiJS4xNWdcbiIsIFMoNSwgNSwgNikpOwoKICAgIHJldHVybiAwOwp9