#ifdef LOCAL #define _GLIBCXX_DEBUG #endif // LOCAL #pragma GCC optimize("O3") #include using namespace std; using ll = long long; using T = double; const T pi = T(acosl(-1)); void solve_test (istream &cin, ostream &cout) { int m, t; cin >> m >> t; T ans = 0; auto f = [&] (const int n) { if (n <= 2) return T(0); T len = T(t) / T(n) - T(m); if (len < 0) return T(0); return T(n) * len * len * 0.25 / T(tanl(pi / T(n))); }; if (f(3) > T(0)) { int left = 2, right = t; while (right - left > 1) { const int mid = (left + right) / 2; if (f(mid) >= f(mid + 1)) right = mid; else left = mid; } for (int i = -3; i <= +3; i++) { ans = max(ans, f(left + i)); ans = max(ans, f(right + i)); } } cout << double(ans) << "\n"; } void solve (istream &cin, ostream &cout) { cout << fixed << setprecision(numeric_limits::digits10); int t; cin >> t; for (int i = 0; i < t; i++) solve_test(cin, cout); } int main() { #ifdef LOCAL ifstream in("input.txt"); ofstream out("output.txt"); solve(in, out); #else solve(cin, cout); #endif }