銆銆緇冧範鐨勬椂鍊欏仛浜嗕竴涓嬶紝鎬繪槸WA銆傚悗鏉ヤ粩緇嗘兂浜嗕竴鎯籌紝鍙戠幇瑕佽璁哄嚑縐嶆儏鍐點傞鍏堣紜繚鍦嗙殑鐩村緞瑕佷笉澶т簬w錛屼箣鍚庡洜涓哄集鏇茬煩褰㈠彲浠ユ湁涓ょ鏂瑰紡錛岃鍒嗗埆璁ㄨ銆備竴縐嶆槸楂樹負w錛岃繖鏍峰彧闇搴曢潰鐩村緞瓚婂ぇ瓚婂ソ銆備竴縐嶆槸楂樹笉瀹氾紝榪欐椂鍊欓渶瑕佸垪涓涓柟紼嬶紝姹傚嚭鏋佸肩偣銆傚彲浠ヨ瘉鏄庢瀬鍊煎氨鏄瀬澶у箋備絾鏄娉ㄦ剰鐨勬槸搴曢潰鍦嗙洿寰勬槸鏈夎寖鍥寸殑錛岃娉ㄦ剰鏋佸肩偣鏄惁钀藉湪鑼冨洿鍐呫傚鏋滀笉鍦紝鐢變簬鏋佸肩偣宸︿晶鍗曡皟閫掑錛岄偅涔堝彇鐩村緞涓簑灝辨槸榪欑鎯呭喌鐨勬渶浼樿В銆?br>銆銆榪欑棰樼洰姣旇禌鐨勬椂鍊欏緢瀹規槗鍑洪敊錛岄渶瑕侀潤涓嬪績鏉ヤ粩緇嗘兂濂芥墠琛岋紝榪欐柟闈㈣兘鍔涗互鍚庤繕瑕佸澶氶敾鐐箋?br>棰樼洰浠g爜錛?br>
#include <iostream>
#include <cmath>
using namespace std;
const double pi = acos(-1.0), eps = 1e-6;
int main()
{
double w, h, s, d;
while (scanf("%lf %lf", &w, &h) == 2)
{
if (fabs(w) < eps && fabs(h) < eps)
break;
if (h < w)
swap(w, h);
d = h / (pi + 1);
d = min(d, w);
s = pi * d * d * 0.25 * w;
d = 2.0 * h / 3.0;
if (pi * d <= w)
{
d = min(d, w);
s = max(s, pi * h * h * h / 27.0);
}
s = max(s, w * w * (pi * h - w) / (4 * pi * pi));
printf("%.3lf\n", s);
}
return 0;
}

]]>