Problem:
Area

For a given polygon g, computes the area of the polygon.

g is represented by a sequence of points p1, p2,..., pn where line segments connecting pi and pi+1 (1 ≤ i ≤ n-1) are sides of g. The line segment connecting pn and p1 is also a side of the polygon.

Note that the polygon is not necessarily convex.

Input

The input consists of coordinates of the points p1,..., pn in the following format:

n
x1 y1
x2 y2
:
xn yn

The first integer n is the number of points. The coordinate of a point pi is given by two integers xi and yi. The coordinates of points are given in the order of counter-clockwise visit of them.

Output

Print the area of the polygon in a line. The area should be printed with one digit to the right of the decimal point.

Constraints

3 ≤ n ≤ 100

-10000 ≤ xi, yi ≤ 10000

No point will occur more than once.

Two sides can intersect only at a common endpoint.

Sample Input 1

3
0 0
2 2
-1 1

Sample Output 1

2.0

Sample Input 2

4
0 0
1 1
1 2
0 2

Sample Output 2

1.5

Solution in Ruby (judge verdict: Accepted)

ps = gets.to_i.times.map { Complex(*gets.split.map(&:to_i)) }
i, r = 0, 0
while ps.size >= 3
  u, v = ps[(i+1)%ps.size] - ps[i], ps[i-1] - ps[i]
  a = (v / u).arg
  if a > 0
    c = (u.conj * v).imag
    x = Complex(*v.rect.reverse!)
    y = -Complex(*u.rect.reverse!)
    if ps.size.times.reject {|j| j == i || j == (i-1)%ps.size || j == (i+1)%ps.size }.all? {|j|
         w = ps[j] - ps[i]
         s = (x * w).real.to_f / c
         t = (y * w).real.to_f / c
         !(s >= 0 && t >= 0 && s + t <= 1)
       }
      r += c * 0.5
      ps.delete_at i
      i %= ps.size
    else
      i = (i+1)%ps.size
    end
  else
    i = (i+1)%ps.size
  end
end
puts '%.1f' % r