#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; template class myPair : public std::pair{ using std::pair::pair; public: inline const myPair operator+(const myPair &p) { return {this->first + p.first, this->second + p.second}; } inline const myPair operator-(const myPair &p) { return {this->first - p.first, this->second - p.second}; } template inline const myPair operator*(const U &p) { return {this->first * p, this->second * p}; } template inline const myPair operator/(const U &p) { return {this->first / p, this->second / p}; } inline myPair& operator+=(const myPair &p) { *this = *this + p; return *this; } inline myPair& operator-=(const myPair &p) { *this = *this - p; return *this; } template inline myPair& operator*=(const U &x) { *this = *this * x; return *this; } template inline myPair& operator/=(const U &x) { *this = *this / x; return *this; } }; #define pair myPair using ll = long long; using mint = modint1000000007; using mint_ = modint998244353; using P = pair; using PL = pair; using V = vector; using VL = vector; using VD = vector; using VC = vector; using VP = vector

; using VS = vector; using VM = vector; using VM_ = vector; using VV = vector; using VVL = vector; using VVD = vector; using VVC = vector; using VVP = vector; using VVS = vector; using VVM = vector; using VVM_ = vector; const int INF = 1001001001; const ll INFL = 1001001001001001001; const ll MOD = 1000000007; const ll MOD_ = 998244353; const V DH = {0,1,0,-1}; const V DW = {1,0,-1,0}; struct grid{int h, w;}; #define rep(i, j, n) for(ll i = (ll)(j); i < (ll)(n); i++) #define repb(i, j, n) for(ll i = (ll)(n-1); i >= (ll)(j); i--) #define reps(i, j, n) for(ll i = (ll)(j); i <= (ll)(n); i++) #define repsb(i, j, n) for(ll i = (ll)(n); i >= (ll)(j); i--) #define all(a) (a).begin(),(a).end() template ostream &operator<<(ostream &os, const vector< T > &v) { for(int i=0; i<(int)v.size(); i++){ os << v[i] << (i+1 != (int)v.size() ? " " : ""); } return os; } template istream &operator>>(istream &is, vector &v){ for(T &in : v) is >> in; return is; } template ostream &operator<<(ostream &os, const pair& p) { os << p.first << " " << p.second; return os; } template istream &operator>>(istream &is, pair &p) { is >> p.first >> p.second; return is; } template vector compress(vector &v, int a = 0){ vector w = v; vector ret(v.size()); sort(w.begin(), w.end()); w.erase(unique(w.begin(), w.end()), w.end()); for(int i=0; i bool chmin(T& a, T b){ if(a > b){ a = b; return true; } return false; } template bool chmax(T& a, T b){ if(a < b){ a = b; return true; } return false; } template T power(T x, ll n) { T ret = 1; while (n > 0) { if (n & 1) ret = ret * x/* % MOD*/; x = x * x/* % MOD*/; n >>= 1; } return ret; } ll round_up(ll a, ll b){ return (a + b - 1) / b; } ll gcd(ll a, ll b){ if(a % b == 0){ return(b); }else{ return(gcd(b, a % b)); } } ll lcm(ll a, ll b){ return a / gcd(a, b) * b ; } int main(void){ //input int N; cin >> N; vector answers; //calculate while(N--){ double t,m,l; cin >> t >> m >> l; double ans = (sqrt(m*m*t*t+m*l/5) - m*t)*36; answers.push_back((double)ans); } for(double d : answers){ cout << fixed << setprecision(2) << floor(d * 100)/100 << endl; } }