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