Problem:
凸 n 角形の面積

凸 n 角形（すべての頂点の内角が 180 度未満である多角形、要するにへこんでいない多角形のこと）の頂点の座標を読んで、その面積を出力するプログラムを作成してください。頂点には辺のつながりの順序に従って頂点 1、頂点 2、頂点 3、‥‥頂点 n という名前がついています。

ただし、 n は 3 以上 20 以下とします。また、次の、三角形の 3 辺の長さ a, b, c から面積 S を求める公式を使ってもかまいません。

入力

入力は以下の形式で与えられます。

x1,y1
x2,y2
:
xn,yn

xi, yi はそれぞれ頂点 i の x 座標, y 座標を表す実数です。

出力

面積 S （実数）を１行に出力します。
出力は 0.000001 以下の誤差を含んでもかまいません。

Sample Input

0.0,0.0
0.0,1.0
1.0,1.0
2.0,0.0
1.0,-1.0

Output for the Sample Input

2.500000

Solution in Ruby (judge verdict: Accepted)

point = Array.new

def solve(point)
  source = point[0]
  point.delete_at(0)
#  point.sort{|p1,p2| p1[1] <=> p2[1]}
    
  sum = 0
  while point.size > 1 do
    p1 = point[0]
    p2 = point[1]
    
    a = getDistance(source, p1)
    b = getDistance(source,p2)
    c = getDistance(p1, p2)
    z = (a + b + c) / 2
      
    sum += getArea(a, b, c, z)
    
    #不要になった座標は削除する
    point.delete_at(0)
  end
  sum
end

def getDistance(p1, p2)
  Math.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2)
end

def getArea(l1, l2, l3, z)
  Math.sqrt(z * (z - l1) * (z - l2) * (z - l3))
end

while input = $stdin.gets do
  point << input.chomp.split(",").map(&:to_f)
end

printf "%.6f\n", solve(point)