如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
URAL/1084
来自"NOCOW"
< URAL
//简直就像一个数学题,分段函数。
Program U1084; Const pi = 3.1415926536; Var l,r : Integer; s,ss,k,d,aef,dd : Extended; Begin readln(l,r); d:=l*0.5; dd:=sqrt(sqr(d)+sqr(d)); if dd<r then begin s:=l*l;writeln(s:0:3);halt;end; if r<d then begin s:=r*r*pi;writeln(s:0:3);halt;end; k:=Sqrt(sqr(r)-sqr(l*0.5)); aef:=Arctan(k/(l*0.5)); ss:=r*r*pi*aef/(pi+pi)-k*l*0.5*0.5; s:=r*r*pi; s:=s-ss*8; writeln(s:0:3); End.
//program cao 纪念我们伟大的曹师傅 #include <stdio.h> #include <math.h> double a,r; double ans,Pi=3.14159265358979323846; void Init() { scanf("%lf%lf",&a,&r); } void Work() { double x,alpha,co,si; if(sqrt(2)*a/2<=r) ans=a*a*1.0;else if(r<=a/2) ans=r*r*Pi;else { co=a/2/r; si=sqrt(1-co*co); alpha=atan(si/co); ans=(r*si*a/2+(Pi/2-alpha*2)*r*r/2)*4; } } void Print() { printf("%.3lf\n",ans); } int main() { Init(); Work(); Print(); return 0; }