提交时间:2022-10-15 11:52:18

运行 ID: 60453

#include<bits/stdc++.h> using namespace std; void game() { double m,n,p,q,x,y,r; double a,b,l,midx,midy,mid; cin>>m>>n>>p>>q>>x>>y>>r; a=pow(p-x,2)+pow(q-y,2); b=pow(m-x,2)+pow(n-y,2); l=max(a,b); if(l==a) { swap(a,b); swap(p,m); swap(q,n); } // 使a小b大 while(b-a>=0.1) { midx=(p+m)/2.0; midy=(q+n)/2.0; mid=pow(midx-(float)x,2)+pow(midy-(float)y,2); if(mid<a) { b=a; a=mid; m=p; n=q; p=midx; q=midy; } // mid<a<b else { b=mid; m=midx; n=midy; } // a<mid<b } printf("%.2lf %.2lf\n",sqrt(mid)-r,sqrt(l)+r); } int main() { // freopen("S1.in","r",stdin); // freopen("S1.out","w",stdout); int t; scanf("%d\n",&t); for(int i=0;i<t;i++) game(); return 0; }