HDU3349lazy gege【水】

    xiaoxiao2021-03-25  69

    http://acm.hdu.edu.cn/showproblem.php?pid=3349

    Problem Description Gege hasn't tidied his desk for long,now his desk is full of things. This morning Gege bought a notebook,while to find somewhise to put it troubles him. He wants to tidy a small area of the desk, leaving an empty area, and put the notebook there, the notebook shouldn't fall off the desk when putting there. The desk is a square and the notebook is a rectangle, area of the desk may be smaller than the notebook. here're two possible conditions: Can you tell Gege the smallest area he must tidy to put his notebook?   Input T(T<=100) in the first line is the case number. The next T lines each has 3 real numbers, L,A,B(0< L,A,B <= 1000). L is the side length of the square desk. A,B is length and width of the rectangle notebook.   Output For each case, output a real number with 4 decimal(printf("%.4lf",ans) is OK), indicating the smallest area Gege should tidy.   Sample Input 3 10.1 20 10 3.0 20 10 30.5 20.4 19.6   Sample Output 25.0000 9.0000 96.0400

    #include<iostream> #include<cstdio> #include<math.h> using namespace std; int main() { int T; double l,a,b,num; cin>>T; while(T--) { cin>>l>>a>>b; if(a<b) { double temp=a; a=b; b=temp; } if(sqrt(l*l+l*l)<b/2) { num=l*l; } else if(sqrt(l*l+l*l)/2>b/2) { num=(b/2)*b/2; } else { num=l*l-((sqrt(l*l+l*l)-b/2)*(sqrt(l*l+l*l)-b/2)); } printf("%.4lf\n",num); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-36407.html

    最新回复(0)