Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
60359 | MattL | S1 | C++ | 通过 | 100 | 127 MS | 252 KB | 941 | 2022-10-15 11:28:00 |
#include<bits/stdc++.h> using namespace std; int read() { int x=0; bool f=false; char t=getchar(); while(t<'0'||t>'9')f^=(t=='-'),t=getchar(); while(t>='0'&&t<='9')x=(x<<1)+(x<<3)+(t^48),t=getchar(); return f?-x:x; } double dis(double q,double p,double qq,double pp) { return sqrt(abs(q-qq)*abs(q-qq)+abs(p-pp)*abs(p-pp)); } double t,x,y,xx,yy,xxx,yyy,r,minn,maxn,xxxx,yyyy,a,b,c,d,dianx,diany; int main() { // freopen("S1.in","r",stdin); // freopen("S1.out","w",stdout); t=read(); while(t--) { x=read(),y=read(),xx=read(),yy=read(),xxx=read(),yyy=read(),r=read(); maxn=max(dis(x,y,xxx,yyy),dis(xx,yy,xxx,yyy)); if(x==xx) dianx=x,diany=yyy; else if(y==yy) dianx=xxx,diany=y; else { a=(y-yy)/(x-xx),b=y-a*x,c=-1/a,d=yyy-c*xxx; dianx=(b-d)/(c-a); diany=dianx*a+b; } minn=dis(dianx,diany,xxx,yyy); printf("%.2lf %.2lf\n",minn-r,maxn+r); } return 0; }