Time Limit: Java: 2000 ms / Others: 2000 ms
Memory Limit: Java: 65536 KB / Others: 65536 KB
The game of horseshoes is played by tossing horseshoes at a post that is driven into the ground. Four tosses generally make up a game. The scoring of a toss depends on where the horseshoe lands with respect to the post. If the center of the post is within the region bounded by the interior of the horseshoe and the imaginary line connecting the two legs of the horseshoe, and the post is not touching the horseshoe, it is a "ringer" and worth five points. If any part of the horseshoe is touching the post, it is a "toucher" and worth 2 points. If the toss is neither a ringer nor a toucher and some part of the horseshoe will touch the post when it is pivoted around its point B, it is a "swinger" and worth 1 point. Any horseshoe which does not fit any of the scoring definitions scores zero points. See the figures below for examples of each of the scoring possibilities.
This program uses mathematical horseshoes that are semicircles
with radius 10 centimeters. The location of the horseshoe is the given by two
points: the centerpoint of the semicircle, measured in centimeters relative
to x and y axes, and the point that exactly bisects the semicircle. The post
is at location (0,0) and is 2 centimeters in diameter. The top of the post is
level with the ground allowing the horseshoe to lay on top of the post; therefore,
a "toucher" would mean that any part of the horseshoe lies within
the circle with a radius of 1 centimeter centered at (0, 0).
Each "turn" consists of four tosses. The purpose of your program is to determine the score of the "turn" by computing the sum of the point values for each of the four tosses.
Input to your program is a series of turns, and a turn consists of four horseshoe positions. Each line of input consists of two coordinate pairs representing the position of a toss. Each coordinate consists of a floating point (X,Y) coordinate pair (-100.0 <= X, Y <= 100.0) with up to 3 digits of precision following the decimal point; the first and second numbers are the X and Y coordinates of the centerpoint of the horseshoe semicircle (Point A) and the third and fourth numbers are the X and Y coordinates of the point (B) which bisects the horseshoe semicircle. You can be assured that the distance between points A and B for each horseshoe will be exactly 10 centimeters. The figure below illustrates the meanings of the values on each line.
The first four lines of input define the horseshoe positions for the first turn; lines 5 through 8 define the second turn, etc. There are at most 999 turns in the input, and every turn contains four horseshoe positions. Your program should continue reading input to the end of file.
76.5 53.3 76.5 43.3 -5.1 1.0 4.9 1.0 5.1 0.7 5.1 -9.3 7.3 14.61 7.3 4.61 23.1 17.311 23.1 27.311 -23.1 17.311 -23.1 27.311 -23.1 -17.311 -23.11 -27.311 23.1 -17.311 23.1 -27.311