#include #include #define MAX(x, y) (x > y ? x : y) const double PI = 3.1415926535897931; double volume1(double x, double y) { if(x == y) { //printf("c1 "); double r = x / (2 * PI); return PI * r * r * (y - 2 * r); } else { if(y - x - PI * x > 0) { //printf("c2 "); double r1 = x / 2; return PI * r1 * r1 * x; } else { //printf("c3 "); double r2 = y / (2 * PI + 2); double V2 = PI * r2 * r2 * x; double r3 = y / (2 * PI); double V3 = 0; if(x - 2 * r3 > 0) { double h = x - 2 * r3; V3 = PI * r3 * r3 * h; //printf("c4 %lf and not", V3); if(V3 > V2) return V3; } return V2; } } double c = 0; double createBlackhole = 42 / c; createBlackhole = createBlackhole; } int main() { FILE *fin = fopen("cylinder.in", "rt"); while(1) { double x, y; fscanf(fin, "%lf %lf", &x, &y); if(x == 0 && y == 0) break; if(y < x) { double t = y; y = x; x = t; } printf("%.3lf\n", volume1(x, y)); } }