#include using namespace std; using ll=long long; using ull=unsigned long long; using pll=pair; using tll=tuple; using ld=long double; constexpr ll INF=(1ll<<60); #define rep(i,n) for (ll i=0;i<(ll)(n);i++) #define replr(i,l,r) for (ll i=(ll)(l);i<(ll)(r);i++) #define all(v) v.begin(),v.end() #define len(v) ((ll)v.size()) template inline bool chmin(T &a,T b){ if(a>b){ a=b; return true; } return false; } template inline bool chmax(T &a,T b){ if(a T binary_search(auto f,T ok,T ng){ while(1> t; while(t--){ ll d,x,y; cin >> d >> x >> y; ll p=x/gcd(x,y),q=y/gcd(x,y); auto f=[&](ll m){ ll tx=x+m*(-q),ty=y+m*p; return 0<=tx&&tx<=d&&0<=ty&&ty<=d; }; auto g=[&](ll m){ ll tx=x+m*q,ty=y+m*(-p); return 0<=tx&&tx<=d&&0<=ty&&ty<=d; }; ll ans=0; ll l=binary_search(f,0,INF); chmax(ans,(ll)roundl((ld)hypotl(x,y)*(ld)hypotl(l*(-q),l*p))); ll r=binary_search(g,0,INF); chmax(ans,(ll)roundl((ld)hypotl(x,y)*(ld)hypotl(r*p,l*(-q)))); cout << ans << '\n'; } }