Advertisement
Guest User

Untitled

a guest
Nov 5th, 2015
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1. /*******************************
  2. *  Bismillahir Rahmanir Rahim
  3. *  Harunur Rashid
  4. ********************************
  5.  
  6. ************Template Starts Here***********/
  7.  
  8. #include<bits/stdc++.h>
  9.  
  10. using namespace std;
  11.  
  12. #define endl     "\n"
  13. #define eps      1e-9
  14. #define sf       scanf
  15. #define xx       first
  16. #define yy       second
  17. #define pf       printf
  18. #define ppb      pop_back
  19. #define sqr(x)   ((x)*(x))
  20. #define mp       make_pair
  21. #define pb       push_back
  22. #define pi       acos(-1.0)
  23. #define mod      1000000007
  24. #define pr(a)    cout<<a<<"\n"
  25. #define sz(x)    ((int)x.size())
  26. #define all(a)   a.begin(),a.end()
  27. #define mem(a,b) memset(a,b,sizeof(a))
  28. #define lcm(a,b) (abs(a)/gcd(a,b))*abs(b)
  29.  
  30. typedef long long int          lld;
  31. typedef unsigned long long int llu;
  32. typedef vector<int>            vi;
  33. typedef pair<int,int>          pii;
  34.  
  35. template<class T>
  36. T mod_f(T num)
  37. {
  38.     if(num>=0) return num%mod;
  39.     else       return ((num%mod)+mod)%mod;
  40. }
  41.  
  42. template<class T>
  43. T fast_pow(T b,T p)
  44. {
  45.     if(p==0)
  46.         return 1;
  47.     if(p%2)
  48.     {
  49.         T x=mod_f(mod_f(b)*mod_f(fast_pow(b,p-1)));
  50.         return x;
  51.     }
  52.     else
  53.     {
  54.         T x=mod_f(fast_pow(b,p/2));
  55.         x=mod_f(mod_f(x)*mod_f(x));
  56.         return x;
  57.     }
  58. }
  59.  
  60. template<class T>
  61. T gcd(T a,T b)
  62. {
  63.     a=abs(a);
  64.     b=abs(b);
  65.     while(b)
  66.     {
  67.         T r=a%b;
  68.         a=b;
  69.         b=r;
  70.     }
  71.     return a;
  72. }
  73.  
  74. /*/ 4 direction ....
  75.  
  76. int dx[]= {+0,+1,+0,-1};
  77. int dy[]= {+1,+0,-1,+0};
  78.  
  79. // 8 direction ....
  80.  
  81. int dx[]= {+0,+1,+1,+1,+0,-1,-1,-1};
  82. int dy[]= {+1,+1,+0,-1,-1,-1,+0,+1};
  83.  
  84. // Knight direction...
  85.  
  86. int dx[]= {+1,-1,+2,-2,+2,-2,+1,-1};
  87. int dy[]= {+2,+2,+1,+1,-1,-1,-2,-2};
  88. */
  89.  
  90. /***********Template Ends Here***********/
  91.  
  92. double area(double a,double b,double c)
  93. {
  94.     double s=(a+b+c)/2;
  95.     return sqrt(s*(s-a)*(s-b)*(s-c));
  96. }
  97.  
  98. int main()
  99. {
  100.     int T;
  101.     double r1,r2,r3,A,low,high,r,X,Y,Z;
  102.     scanf("%d",&T);
  103.     while(T--)
  104.     {
  105.         scanf("%lf%lf%lf",&r1,&r2,&r3);
  106.         A=area(r1+r2,r1+r3,r2+r3);
  107.         low=0;
  108.         high=1000000000;
  109.         while(high-low>eps)
  110.         {
  111.             r=(low+high)/2;
  112.             X=area(r1+r2,r1+r,r2+r);
  113.             Y=area(r1+r3,r1+r,r3+r);
  114.             Z=area(r2+r3,r2+r,r3+r);
  115.             if(X+Y+Z<A) low=r;
  116.             else high=r;
  117.         }
  118.         printf("%.6lf\n",r);
  119.     }
  120.     return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement