Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Circles Intersection

You are given circle $A$ with radius $r_a$ and with central coordinate $(x_a, y_a)$ and circle $B$ with radius $r_b$ and with central coordinate $(x_b, y_b)$.

Write a program which prints:

"2" if $B$ is in $A$,

"-2" if $A$ is in $B$,

"1" if circumference of $A$ and $B$ intersect, and

"0" if $A$ and $B$ do not overlap.

You may assume that $A$ and $B$ are not identical.

Input

The input consists of multiple datasets. The first line consists of an integer $N$ ($N \leq 50$), the number of datasets. There will be $N$ lines where each line represents each dataset. Each data set consists of real numbers:

$x_a$ $y_a$ $r_a$ $x_b$ $y_b$ $r_b$

Output

For each dataset, print 2, -2, 1, or 0 in a line.

Sample Input

2
0.0 0.0 5.0 0.0 0.0 4.0
0.0 0.0 2.0 4.1 0.0 2.0

Output for the Sample Input

2
0

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;

static class CirclesIntersection
{
    static void Main()
    {
        var n = int.Parse( Console.ReadLine() );
        var q =
            from f in Enumerable.Repeat<Func<string>>( Console.ReadLine, n )
            let d = Array.ConvertAll( f().Split( ' ' ), double.Parse )

            let abx = d[3] - d[0]
            let aby = d[4] - d[1]

            let ab = Math.Sqrt( abx * abx + aby * aby )
            select
                ab + d[5] < d[2]  ?  2 :
                ab + d[2] < d[5]  ? -2 :
                ab <= d[2] + d[5] ?  1 :
                0;
        q.ToList().ForEach( Console.WriteLine );
    }
}