Div II, 250 points

A little ugly.  Could be much more compact and more efficient.