hdu 4619Warm up 2

來源:互聯網
上載者:User

#include <cstdio>#include <cmath>double min(double x,double y){    return x>y?y:x;}struct node{    double x,y,z;    double r,s,t;    double R;};node v[35];void cal(double x1,double y1,double z1,double x2,double y2,double z2,int cur){    v[cur].r=y1*z2-y2*z1;    v[cur].s=z1*x2-z2*x1;    v[cur].t=x1*y2-x2*y1;    v[cur].R=sqrt(x1*x1+y1*y1+z1*z1);}double solve(int cur,int pos){    double x,y,z;    x=v[cur].x-v[pos].x;    y=v[cur].y-v[pos].y;    z=v[cur].z-v[pos].z;    double r,s,t;    r=v[cur].s*v[pos].t-v[cur].t*v[pos].s;    s=v[cur].t*v[pos].r-v[cur].r*v[pos].t;    t=v[cur].r*v[pos].s-v[cur].s*v[pos].r;    return fabs(x*r+y*s+z*t)/sqrt(r*r+s*s+t*t);}int main(){    //freopen("in.txt","r",stdin);    int t,n;    scanf("%d",&t);    while(t--)    {        double x1,y1,z1,x2,y2,z2;        scanf("%d",&n);        for(int i=0; i<n; ++i)        {            scanf("%lf%lf%lf",&v[i].x,&v[i].y,&v[i].z);            scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&z1,&x2,&y2,&z2);            cal(x1-v[i].x,y1-v[i].y,z1-v[i].z,x2-v[i].x,y2-v[i].y,z2-v[i].z,i);        }        double dis;        int flag=-1;        for(int i=0; i<n&&flag!=1; ++i)            for(int j=i+1; j<n&&flag!=1; ++j)            {                double c;                c=solve(i,j);                if(c<=v[i].R+v[j].R) flag=1;                if(flag==1) break;                if(flag==-1) dis=c-(v[i].R+v[j].R),flag=0;                else dis=min(dis,c-(v[i].R+v[j].R));            }        if(flag==1) puts("Lucky");        else printf("%.2lf\n",dis);    }    return 0;}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.