如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
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;
}

