fork download
  1. /* Code by Pranjal Rai : Ashtam Swar */
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. #define ff first
  5. #define ss second
  6. #define pb push_back
  7. typedef int ll;
  8. typedef unsigned long long ull;
  9. typedef long double ld;
  10. const ll inf=1e18;
  11. const ll M=1e9+7;
  12. string to_string(ll x){stringstream ss; ss<<x; return ss.str();}
  13. ll to_integer(string s){stringstream ss(s); ll x; ss>>x; return x;}
  14.  
  15. ld a1,b1,c1,a2,b2,c2;
  16. ld eps2=0.0000001;
  17. ld eps=0.000001;
  18.  
  19. ld fun(ld x)
  20. {
  21. ld fir=( (x-a1)*(x-a1) - c1 )/b1;
  22. ld sec=( (x-a2)*(x-a2) - c2 )/b2;
  23. return fabs(fir-sec);
  24. }
  25.  
  26. ld ter(ld l, ld h)
  27. {
  28. ld di=3.0;
  29. ld prel=-1.0,prer=-1.0;
  30. while(1)
  31. {
  32. if(prel==l && prer==h)
  33. break;
  34. prel=l;
  35. prer=h;
  36. ld m1=l+(h-l)/di;
  37. ld m2=h-(h-l)/di;
  38. ld d1=fun(m1);
  39. ld d2=fun(m2);
  40. ld d1l=fun(m1-eps);
  41. ld d1r=fun(m1+eps);
  42. ld d2l=fun(m2-eps);
  43. ld d2r=fun(m2+eps);
  44. if(d1r<d1 && d2l<d2)
  45. {
  46. l=m1;
  47. h=m2;
  48. }
  49. else if(d2r<d2)
  50. {
  51. l=m2;
  52. }
  53. else if(d1l<d1)
  54. {
  55. h=m1;
  56. }
  57. else if(d2l<d2)
  58. {
  59. h=m2;
  60. }
  61. else if(d1r<d1)
  62. {
  63. l=m1;
  64. }
  65. }
  66. return fun(l);
  67. }
  68.  
  69. int main()
  70. {
  71. ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
  72. ll t;
  73. cin>>t;
  74. while(t--)
  75. {
  76. cin>>a1>>b1>>c1>>a2>>b2>>c2;
  77. ld a=b1-b2;
  78. ld b=((ld)2.0)*(a1*b2-a2*b1);
  79. ld c=(b2*c1)-(b1*c2)+(b1*a2*a2)-(b2*a1*a1);
  80. ld d=(b*b)-((ld)(4.0)*a*c);
  81. if(d>=0.0)
  82. {
  83. cout<<"0\n";
  84. continue;
  85. }
  86. ld l=-1000000000000.0;
  87. ld h=1000000000000.0;
  88. ld ans=ter(l,h);
  89. cout<<fixed<<setprecision(6)<<ans<<"\n";
  90. }
  91. return 0;
  92. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty