fork(2) download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <iomanip>
  4. #include <cmath>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11. long long ile;
  12. cin>>ile;
  13. for (int i=0; i<ile; i++)
  14. {
  15. long double x1,x2,y1,y2,d1,d2;
  16. cin>>x1>>y1>>d1>>x2>>y2>>d2;
  17. long double length, wynik;
  18. if (x1==x2&&y1==y2)
  19. {
  20. wynik= d1>d2 ? d2:d1;
  21. cout<<fixed<<setprecision(2)<<2*wynik<<endl;
  22.  
  23. }
  24. else
  25. {
  26. long long a,b;
  27. a=abs(x1-x2);
  28. b=abs(y1-y2);
  29. length=sqrt(a*a+b*b);
  30. if (length>=(d1+d2))
  31. wynik=0.00;
  32.  
  33. else if (d1-length>0)
  34. {
  35. if (d1>=2*d2)
  36. wynik=2*d2;
  37.  
  38. else
  39. wynik=d1-(length-d2);
  40. }
  41.  
  42. else if (d2-length>0)
  43. {
  44. if (d2>=2*d1)
  45. wynik=2*d1;
  46.  
  47. else
  48. wynik=d2-(length-d1);
  49. }
  50.  
  51. else
  52. wynik=d1+d2-length;
  53.  
  54. cout<<fixed<<setprecision(2)<<wynik<<endl;
  55. }
  56.  
  57. }
  58.  
  59. return 0;
  60. }
  61.  
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