Problem:


KND is So Sexy

Problem

KND君は会津大学に在籍する学生プログラマである。彼の胸元はとてもセクシーなことで知られている。

簡単のために胸元から見える肌の部分を図にある二等辺三角形ABCで表す。しかし服にはたるみが生じているため、長さが等しい2辺AC,BC(これらの長さをlとする)には実際にはさらに長さx分余裕がある。はだける部分の面積を増やすため、たるんだ分を引っ張ることで新たにふたつの三角形ADC,BECを作ることにしよう。点D,Eは三角形ABCの外側に存在する。この新しいふたつの三角形はたるみによって生じるもので、辺BEと辺ECの長さの和および辺ADと辺DCの長さの和はl+xでなければならない。あなたはこれら3つの三角形の面積の和Mが最大になるように点D,Eを決める。KND君の隣人であるあなたは彼の胸元がどれ程セクシーなのかを調べるために、a,l,xを入力として服からのぞく肌の最大の面積(M)を計算するプログラムを作成することにした。

Input

入力は複数のテストケースからなる。
ひとつのテストケースは以下の形式で与えられる。
入力の終わりをEOFで示す。

a l x

ここで、

a:三角形ABCの辺ABの長さ

l:三角形ABCの2辺AC,BCの長さ

x:2辺AC,BCにあるたるみ

である。

Constraints

入力は以下の条件を満たす。

入力はすべて整数。

1 ≤ a ≤ 1000

1 ≤ l ≤ 1000

1 ≤ x ≤ 1000

Output

各テストケースにつき最大の面積を1行に出力せよ。この値はジャッジ出力の値と10-5より大きい差を持ってはならない。

Sample Input

2 2 1
2 3 1
3 2 3
2 3 5

Sample Output

3.9681187851
6.7970540913
6.5668891783
13.9527248554



Sample input:
2 2 1
2 3 1
3 2 3
2 3 5


Sample output:
3.9681187851
6.7970540913
6.5668891783
13.9527248554

Submission status: Accepted

Solution code:
import sys
for line in sys.stdin:
  a,l,x=map(float,line.split())
  center=1/2*a*(l**2-(a/2)**2)**0.5
  side=1/2*l*(((l+x)/2)**2-(l/2)**2)**0.5
  print("{0:.10f}".format(center+side*2))

Submission status: Accepted

Solution code:
import sys
for s in sys.stdin:
  a,l,x=map(float,s.split())
  print(a/2*(l*l-a*a/4)**.5+l/2*(2*l*x+x*x)**.5)

Submission status: Accepted

Solution code:
import sys
for s in sys.stdin:a,l,x=map(float,s.split());print(a/2*(l*l-a*a/4)**.5+l/2*(2*l*x+x*x)**.5)

Submission status: Accepted

Solution code:
from sys import stdin
from math import sqrt

def area(a, b, c):
        d = (a + b + c) / 2.0
        return sqrt(d * (d - a) * (d - b) * (d - c))

for line in stdin:
        (a, l, x) = map(int, line.split())
        print "%.6f" % (area(a, l, l) + 2 * area(l, (l + x) / 2.0, (l + x) / 2.0))

Submission status: Accepted

Solution code:
import math
while True:
    try:
        a,l,x=map(int,raw_input().split())
    except EOFError:
        break
    ADC=math.sqrt(pow((l+x)/2.0,2)-pow(l/2.0,2))*l/2
    ABC=math.sqrt(pow(l,2)-pow(a/2.0,2))*a/2
    print ABC+2*ADC

Submission status: Accepted

Solution code:
import math
def S(a,b):
    s = b+a/2.0
    return math.sqrt(s*(s-a)*(s-b)**2)

while True:
    try:
        a,l,x = map(int, raw_input().split())
        print S(a,l)+2*S(l,(l+x)/2.0)
    except:
            break

Submission status: Accepted

Solution code:
import math
while True :
    try :
        a, l, x = map(int, input().split())
    except EOFError :
        break

    HC = math.sqrt(l**2 - a**2 / 4)
    I = math.sqrt(((l+x)/2)**2 - l**2 / 4)
    S1 = a * HC / 2
    S2 = l * I / 2
    print('{:.8f}'.format(S1 + S2*2))

Submission status: Accepted

Solution code:
from math import sqrt
try:
    while 1:
        a, l, x = map(int, input().split())
        print("%.10f" % (l*sqrt(x*(2*l+x))/2 + a*sqrt(4*l**2 - a**2)/4))
except EOFError:
    ...

Submission status: Accepted

Solution code:
import math

while True:
    try:
        a,l,x=map(int, input().split())
        temp=(l+x)/2
    except EOFError:
        break

    def heron(i,j,k):
        d = (i+j+k)/2
        return math.sqrt(d*(d-i)*(d-j)*(d-k))

    print((str(heron(a,l,l)+heron(l,temp,temp)*2)))

Submission status: Accepted

Solution code:
import math
while True:
    try:
        a,l,x=map(int,raw_input().split())
    except EOFError:
        break

    ANS=math.sqrt(pow(l,2)-pow(a/2.0,2))*a/2+math.sqrt(pow((l+x)/2.0,2)-pow(l/2.0,2))*l/2*2
    print ANS

Submission status: Accepted

Solution code:
while True:
  try:
    a, l, x = map(int, input().split())
  except EOFError:
    break
  s1 = (l + l + x) / 2
  v1 = (s1 * (l / 2) * (l / 2) * (x / 2)) ** (1 / 2)
  s2 = (l + l + a) / 2
  v2 = (s2 * (s2 - l) * (s2 - l) * (s2 - a)) ** (1 / 2)
  print(v1 * 2 + v2)

Submission status: Accepted

Solution code:
import sys
for i in sys.stdin:
    a,l,x=map(int,i.split())
    print((a*(4*l*l-a*a)**.5+2*l*((l+x)**2-l*l)**.5)/4)