## Cylinder Candy ZOJ - 3866 (求定积分)

Cylinder Candy
ZOJ - 3866

 Edward the confectioner is making a new batch of chocolate covered candy. Each candy center is shaped as a cylinder with radius r mm and height h mm.

The candy center needs to be covered with a uniform coat of chocolate. The uniform coat of chocolate is d mm thick.

You are asked to calcualte the volume and the surface of the chocolate covered candy.


Input

There are multiple test cases. The first line of input contains an integer T(1≤ T≤ 1000) indicating the number of test cases. For each test case:

There are three integers r, h, d in one line. (1≤ r, h, d ≤ 100)


Output

For each case, print the volume and surface area of the candy in one line. The relative error should be less than 10-8.


Sample Input

2
1 1 1
1 3 5


Sample Output

32.907950527415 51.155135338077
1141.046818749128 532.235830206285


(xr)2+y2=d2

x=f(y)=d2y2+r

V=πd0πx2dy

V1=πd0(d2y2+r)2dy

=πd0(d2y2+r2+2rd2y2)dy

=πd3+πr2d13πd3+πd02rd2y2dy

=πr2d+23πd3+πd02rd2y2dy

y=dsinθ

d0d2y2=π20dcosθddsinθ=π20d2cos2θdθ

=d2π20cos2θ+14d2θ

=d2π0cost+14dt

=14πd2

V1=πr2d+23πd3+14πd2

V2=π(r+d)2h

V=2V1+V2

y=f(x)

S=2πbaf(x)1+f(x)2dx

S1=2πd0(d2y2+r)1+y2d2y2dy

=2πd2+π2dr

S2=2πr2

S3=2π(r+d)h

S=S1+S2+S3

code：

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const double pi = acos(-1.0);
int main(){
int t;
scanf("%d",&t);
while(t--){
double r,d,h;
scanf("%lf%lf%lf",&r,&h,&d);
printf("%.10f ",2.0*(2.0/3.0*pi*d*d*d+pi*r*r*d+1.0/2.0*pi*pi*d*d*r)+pi*(r+d)*(r+d)*h);
printf("%.10f\n",2.0*(2.0*pi*d*d+pi*pi*d*r)+2.0*pi*r*r+2.0*pi*(r+d)*h);
}
return 0;
}