Problem B
Rings and Glue
Input: standard input
Output: standard output
Time Limit: 1 second
Memory Limit: 32 MB
Little
John is in big trouble. Playing with his different-sized (and colored!) rings and
glue seemed such a good idea. However, the rings now lay on the floor, glued
together with some-thing that will definitely not come off with water.
Surprisingly enough, it seems like no rings are actually glued to the floor,
only to other rings. How about that!
You
must help Little John to pick the rings off the floor before his mom comes home
from work. Since the glue is dry by now, it seems like an easy enough task.
This is not the case. Little John is an irrational kid of numbers, and so he
has decided to pick up the largest component (most rings) of glued-together
rings first. It is the number of rings in this largest component you are asked
to find. Two rings are glued together if and only if they overlap at some point
but no rings will ever overlap in only a single point. All rings are of the
doughnut kind (with a hole in them). They can however, according to Little
John, be considered “infinitely thin”.
Input
Input
consists of a number (>0) of
problems. Each problem starts with the number of rings, n, where 0 £ n < 100. After that, n rows follow, each containing a
ring’s physical attributes. That is, 3
floating point numbers, with an arbitrary number of spaces between them,
describing the x coordinate and y coordinate for its center and its
radius. All floating point numbers fit into the standard floating point type of
your favorite programming language
(e.g., float for C/C++). Input ends with a single
row with the integer -1.
Output
Output
consists of as many grammatically correct answers as there were problems, each
answer, on a separate line, being ‘The
largest component contains X ring(s).’ where X is the number of rings in the largest component.
Sample Input
4
0.0 0.0 1.0
-1.5 -1.5 0.5
1.5 1.5 0.5
-2.0 2.0 3.5
3
3.0 2.0 2.0
0.0 -0.5 1.0
0.0 0.0 2.0
5
-2.0 0.0 1.0
1.0 -1.0 1.0
0.0 1.0 0.5
2.0 0.0 1.0
-1.0 1.0 1.0
-1
Sample Output
The largest component contains 4 rings.
The largest component contains 2 rings.
The largest component contains 3 rings.
(Joint Effort Contest, Problem Source: Swedish
National Programming Contest, arranged by department of Computer Science at
Lund Institute of Technology.)