Area Between Outer Hull and Inner Hull
Time limit5sMemory limit128 MB
Compute the convex hull of up to 1000 points twice, removing corner vertices after the first pass, and print the difference of the two polygon areas.
Problem
You are given a set of points on the plane, .
The outer hull of is the convex hull of . Let be the convex polygon of smallest area that contains every point of inside it or on its boundary. Then is the set of points of that are corner vertices of . A point of that lies on the boundary of without being a corner vertex does not belong to .
The inner hull of is the convex hull of , the set left after removing every point of from .
Compute the area enclosed by minus the area enclosed by .
A hull with fewer than three corner vertices, and a hull whose points all lie on one straight line, enclose no polygon, so their area is 0. If every point of lies on one straight line, both hulls have area 0 and the answer is 0.

Take the set of 8 points , , , , , , , . The outer hull is . The point lies on segment but is not a corner vertex, so it drops out. Removing from leaves , and the convex hull of that set is the inner hull . The area of is 12.5 and the area of is 6.0, so the area between the two hulls is .
Input
The input holds several problem sets.
The first line of each problem set has a problem identifier and the point count , separated by one space. The identifier is a string of at most 10 characters and contains no whitespace, and . Each of the next lines has the coordinate and the coordinate of one point, separated by one space. Each coordinate is a real number written with at most one digit after the decimal point, and its absolute value is at most 100.0. The same point is never given twice inside one problem set.
The next problem set follows immediately. A line whose identifier is ZZ and whose is 0 marks the end of the input. There are at most 100 problem sets.
Output
For each problem set, print one line of the form ProblemID id: area, where id is the identifier given in the input and area is the area between the outer hull and the inner hull. Print the area with 4 digits after the decimal point.
Because every coordinate has at most one digit after the decimal point, the answer is always a multiple of 0.005, so no rounding tie ever comes up.