Qiuqiqiu  
不管道路多么崎岖坎坷,我永远不停下追逐梦想的脚步!

三分

我的代码
 1 #include <stdio.h>
2 #include <math.h>
3 const double pi=acos(-1.0),eps=1e-6;
4 double x,y,l,d;
5 double f(double a)
6 {
7 return (l-(y-d*cos(a))/sin(a))*cos(a)+d*sin(a);
8 }
9 double tsearch(double l,double r)
10 {
11 double m1,m2;
12 while (r-l>eps)
13 {
14 m1=l+(r-l)/3;
15 m2=l+(r-l)/3*2;
16 if (f(m1)<f(m2)) l=m1;
17 else r=m2;
18 }
19 return l;
20 }
21 int main()
22 {
23 while (scanf("%lf%lf%lf%lf",&x,&y,&l,&d)!=EOF)
24 {
25 if (y<d || x<d || f(tsearch(0+eps,pi/2))>x) printf("no\n");
26 else printf("yes\n");
27 }
28 return 0;
29 }

 

posted on 2011-12-16 16:08  Qiuqiqiu  阅读(280)  评论(0编辑  收藏  举报