Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- double ax,ay,az,bx,by,bz,px,py,pz;
- double dis(double mid)
- {
- double x1=ax+(bx-ax)*mid;
- double y1=ay+(by-ay)*mid;
- double z1=az+(bz-az)*mid;
- double d=sqrt(((px-x1)*(px-x1))+((py-y1)*(py-y1))+((pz-z1)*(pz-z1)));
- return d;
- }
- int main()
- {
- freopen("in.txt","r",stdin);
- freopen("out.txt","w",stdout);
- int t,i,j;
- double hi,lo,mid1,mid2;
- cin>>t;
- for(i=1;i<=t;i++)
- {
- cin>>ax>>ay>>az>>bx>>by>>bz>>px>>py>>pz;
- hi=1.0,lo=0.0;
- for(j=1;j<=1000;j++)
- {
- mid1=(lo*2.0+hi)/3.0;
- mid2=(lo+hi*2.0)/3.0;
- if(dis(mid1)>dis(mid2))
- lo=mid1;
- else
- hi=mid2;
- }
- double ans= dis((lo+hi)/2.0);
- printf("Case %d: %.17lf\n",i,ans);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement