1.
import java.util.Scanner;

/**
* FWP, Ausgewählte Probleme aus dem ACM Programming Contest, SS10
* Problem: 10991 - Region
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=226&page=show_problem&problem=1932
*
* @author Siegfried Ippisch
* @author Martin Lambeck
* @version 1.0
*
* Method : -
* Status : Accepted
* Runtime: 0.864
*/
public class Region {

static Scanner in = new Scanner(System.in);

public static void main (String...s)
{
int c = in.nextInt();

for (int i = 0; i < c; i++)
testcase();
}

static void testcase()
{

// Radien
double ra = in.nextDouble();
double rb = in.nextDouble();
double rc = in.nextDouble();

// Winkel
double a = angle(ra+rb, ra+rc, rb+rc);
double b = angle(rb+rc, ra+rb, ra+rc);
double c = angle(ra+rc, rb+rc, ra+rb);

// Test
if (Math.abs(a+b+c -Math.PI) > 0.0001)
throw new NullPointerException();

// Fläche berechnen
double triarea = triarea(ra+rb, ra+rc, rb+rc);
triarea -= (ra*ra) * 0.5 * a;
triarea -= (rb*rb) * 0.5 * b;
triarea -= (rc*rc) * 0.5 * c;

System.out.printf("%.6f%n", triarea);

}

/**
* Winkel, im Dreieck, mit Cosinussatz berechnen
* @param a,b,c Seiten
* @return Winkel gegenüber von c
*/
static double angle(double a, double b, double c)
{
return Math.acos((c*c - a*a - b*b) / (-2 * a * b));
}

/**
* Dreiecksfläche berechnen
* @param a,b,c Seiten
* @return Fläche
*/
static double triarea(double a, double b, double c)
{
double s =(a+b+c)/2.0;

double f = Math.sqrt(s*(s-a)*(s-b)*(s-c));

return f ;
}

}