mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
55762be649
2400-2499
44 lines
1.3 KiB
C++
44 lines
1.3 KiB
C++
#include <cstdio>
|
|
#include <cmath>
|
|
using namespace std;
|
|
struct point
|
|
{
|
|
double x,y,z;
|
|
};
|
|
int main()
|
|
{
|
|
int n,i;
|
|
double xmin,xmax,ymin,ymax,zmin,zmax,xx,yy,zz,r;
|
|
point points[10],ball;
|
|
scanf("%d",&n);
|
|
while(n--)
|
|
{
|
|
for(i=0;i<8;i++)
|
|
scanf("%lf%lf%lf",&points[i].x,&points[i].y,&points[i].z);
|
|
scanf("%lf%lf%lf%lf",&ball.x,&ball.y,&ball.z,&r);
|
|
xmin=ymin=zmin=1000000;xmax=ymax=zmax=-1;
|
|
for(i=0;i<8;i++)
|
|
{
|
|
if(xmin>points[i].x) xmin=points[i].x;
|
|
if(xmax<points[i].x) xmax=points[i].x;
|
|
if(ymin>points[i].y) ymin=points[i].y;
|
|
if(ymax<points[i].y) ymax=points[i].y;
|
|
if(zmin>points[i].z) zmin=points[i].z;
|
|
if(zmax<points[i].z) zmax=points[i].z;
|
|
}
|
|
if(ball.x<xmin) xx=xmin;
|
|
else if(ball.x>xmax) xx=xmax;
|
|
else xx=ball.x;
|
|
if(ball.y<ymin) yy=ymin;
|
|
else if(ball.y>ymax) yy=ymax;
|
|
else yy=ball.y;
|
|
if(ball.z<xmin) zz=zmin;
|
|
else if(ball.z>zmax) zz=zmax;
|
|
else zz=ball.z;
|
|
double diss=sqrt((xx-ball.x)*(xx-ball.x)+(yy-ball.y)*(yy-ball.y)+(zz-ball.z)*(zz-ball.z));
|
|
if(diss>r) printf("No\n");
|
|
else printf("Yes\n");
|
|
}
|
|
return 0;
|
|
}
|