2012 Canadian Computing Competition, Stage 2

Day 2, Problem 3: The Winds of War

Colonel Trapp is trapped! For several days he has been fighting General Position on a plateau and his mobile command unit is now stuck at (0, 0), on the edge of a cliff. But the winds are changing! The Colonel has a secret weapon up his sleeve: the "epsilon net." Your job, as the Colonel's chief optimization officer, is to determine the maximum advantage that a net can yield.

The epsilon net is a device that looks like a parachute, which you can launch to cover any convex shape. (A shape is convex when, for every pair p, q of points it contains, it also contains the entire line segment pq.) The net shape must include the launch point (0, 0).

The General has P enemy units stationed at fixed positions and the Colonel has T friendly units. The advantage of a particular net shape equals the number of enemy units it covers, minus the number of friendly units it covers. The General is not a unit.

You can assume that

  • no three points (Trapp's position (0, 0), enemy units, and friendly units) lie on a line,
  • every two points have distinct x-coordinates and y-coordinates,
  • all co-ordinates (x, y) of the units have y > 0,
  • all co-ordinates are integers with absolute value at most 1000000000, and
  • the total number P + T of units is between 1 and 100

Input Format

The first line contains P and then T, separated by spaces. Subsequently there are P lines of the form x y giving the enemy units' co-ordinates, and then T lines giving the friendly units' coordinates.

Output Format

Output a single line with the maximum possible advantage.

Sample Input

5 3
-8 4
-7 11
4 10
10 5
8 2
-5 7
-4 3
5 6

Sample Output

3



Figure 1: Sample input and an optimal net.

All Submissions
Best Solutions


Point Value: 30 (partial)
Time Limit: 2.00s
Memory Limit: 64M
Added: Jun 20, 2012

Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, TEXT, PHP, SCM, CAML, PERL, C#, C++11, PYTH3

Comments (Search)

In addition to the 10 cases used during the original contest (which total to 20 points), the problem creator has supplied an 11th case in which P + T = 1000. This case is worth an additional 10 points, and is significantly more interesting to solve.

Can someone please change the problem description?