提交时间:2022-10-15 11:31:50
运行 ID: 60419
#include<bits/stdc++.h> using namespace std; void game() { double m,n,p,q,x,y,r; double a,b,l,midx,midy,mid; scanf("%lf %lf %lf %lf %lf %lf %lf\n",&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("%.2f %.2f\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; }