fork(2) download
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <cmath>


using namespace std;

int main()
{
    long long ile;
    cin>>ile;
    for (int i=0; i<ile; i++)
    {
        long double x1,x2,y1,y2,d1,d2;
        cin>>x1>>y1>>d1>>x2>>y2>>d2;
        long double length, wynik;
        if (x1==x2&&y1==y2)
        {
            wynik= d1>d2 ? d2:d1;
            cout<<fixed<<setprecision(2)<<2*wynik<<endl;

        }
        else
        {
            long long a,b;
            a=abs(x1-x2);
            b=abs(y1-y2);
            length=sqrt(a*a+b*b);
            if (length>=(d1+d2))
                wynik=0.00;

            else if (d1-length>0)
            {
                if (d1>=2*d2)
                    wynik=2*d2;

                else
                    wynik=d1-(length-d2);
            }

            else if (d2-length>0)
            {
                if (d2>=2*d1)
                    wynik=2*d1;

                else
                    wynik=d2-(length-d1);
            }

            else
                wynik=d1+d2-length;

            cout<<fixed<<setprecision(2)<<wynik<<endl;
        }

    }

    return 0;
}
Success #stdin #stdout 0s 16064KB
stdin
3
3 3 3
3 -1 4
-3 -3 3
-1 2 5
3 3 2
-3 -3 1
stdout
3.00
2.61
0.00