NC204595. 太阳花田
描述
输入描述
一行三个正整数,,和 。
输出描述
幽香能守护花田的最大面积。如果你和正确答案的误差不超过,则认为你的答案正确。
示例1
输入:
2 4 1
输出:
3.1416
说明:
示例2
输入:
1 2 4
输出:
2.0000000
说明:
C++(clang++11) 解法, 执行用时: 7ms, 内存消耗: 400K, 提交时间: 2020-11-20 17:39:09
#include<bits/stdc++.h> using namespace std; const double pi=3.1415926536; int main(){ // freopen("7.in","r",stdin); // freopen("7.out","w",stdout); double x,y,r; cin>>x>>y>>r; x/=2,y/=2; if(x>y)swap(x,y); double ma=(sqrt(x*x+y*y)); if(r>=ma)printf("%.2lf",4*x*y); else if(r<=x)printf("%.2lf",pi*r*r); else if(r<=y){ double h=sqrt(r*r-x*x); printf("%.2lf",2*asin(x/r)*r*r+2*h*x); } else{ double h1=sqrt(r*r-x*x),h2=sqrt(r*r-y*y); printf("%.2lf",(2*pi-4*acos(x/r)-4*acos(y/r))*r*r/2+2*h1*x+2*h2*y); } }