Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
60453 | Cyril | S1 | C++ | 解答错误 | 0 | 808 MS | 252 KB | 707 | 2022-10-15 11:52:18 |
#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; }