CodeForces 203D Hit Ball 水!计算几何

来源:互联网 发布:阿历克斯梅森 知乎 编辑:程序博客网 时间:2024/05/17 23:28
#include <stdio.h>#define eps 1e-8int main(){    double a,b,m,vx,vy,vz;    while(scanf("%lf%lf%lf",&a,&b,&m)==3)    {        scanf("%lf%lf%lf",&vx,&vy,&vz);        vy=-vy;        double t=m/vy;        int count=int(t*vz/b);//反射的次数        double y1=t*vz-count*b;        if(count%2) y1=b-y1;        bool ret;        if(vx>0) ret=false;        else ret=true,vx=-vx;        double y2;        if(vx<=eps&&-vx<=eps) y2=a/2.0;        else        {            double s1=0.5*a*vy/vx;            if(m<s1) y2=(s1-m)*vx/vy;            else            {                m=m-s1;                t=m/vy;                count=int(t*vx/a);                y2=t*vx-count*a;                if(count%2) y2=a-y2;            }        }        if(!ret) y2=a-y2;        printf("%.10lf %.10lf\n",y2,y1);    }    return 0;}

原创粉丝点击