import sys sys.setrecursionlimit(10 ** 6) int1 = lambda x: int(x) - 1 p2D = lambda x: print(*x, sep="\n") def II(): return int(sys.stdin.buffer.readline()) def LI(): return list(map(int, sys.stdin.buffer.readline().split())) def LLI(rows_number): return [LI() for _ in range(rows_number)] def LI1(): return list(map(int1, sys.stdin.buffer.readline().split())) def LLI1(rows_number): return [LI1() for _ in range(rows_number)] def BI(): return sys.stdin.buffer.readline().rstrip() def SI(): return sys.stdin.buffer.readline().rstrip().decode() inf = 10 ** 16 md = 10 ** 9 + 7 # md = 998244353 def ev(a,b,c): cos=(a**2+b**2-c**2)/2/a/b sin=(1-cos**2)**0.5 return a*b*sin/8 a,b,c=LI() t=(a+b+c)/2 s=(t*(t-a)*(t-b)*(t-c))**0.5 ans=s-ev(a,b,c)-ev(b,c,a)-ev(c,a,b) print(ans)