Cod sursa(job #1370048)

Utilizator span7aRazvan span7a Data 3 martie 2015 12:47:35
Problema Arbore Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream>
#include<cmath>
#include<iomanip>

using namespace std;
ifstream f("cercuri.in");
ofstream g("cercuri.out");
int x1,y_1,x2,y2,r1,r2;
void solve()
{
     long double d,sol;
    d=sqrt( (x2-x1 )*(x2-x1)  + ( y2-y_1 )*(y2-y_1)   ) ;
    if( d == 0 && r1==r2 ) { g<< "-1"  <<'\n' ; return ; }
    if( d== 0 && r1  != r2 ) { g<< "-2"  <<'\n' ; return ; }
    if(d > r1+r2 ) { g<< "-2"  <<'\n' ; return ; }
    if(d*d <  (r1- r2 )*(r1-r2) )  { g<< "-2"  <<'\n' ; return ; }
    if(d == r1+r2 ) { g<< "-3"  << '\n' ; return ; }
    if(d*d == (r1- r2 )*(r1-r2) )  { g<< "-3"  <<'\n' ; return ; }
    sol = (double)1/d * sqrt( (double)( -d + r2 - r1 ) * (-d -r2 + r1 ) * ( -d + r2 + r1 ) * ( d + r1 + r2 )  );
    g<<fixed<<setprecision(3)<<sol<<'\n';

}
int main()
{
    int t;
    f>>t;
    while(t--)
    {
        f>>x1>>y_1>>r1>>x2>>y2>>r2;
        solve();
    }
    return 0;
}