#include #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; typedef long double ld; template bool chkmax(T &x,T y){return x bool chkmin(T &x,T y){return x>y?x=y,true:false;} int readint(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } const ld eps=1e-10; ll a,b,x,ans; int main(){ int T=readint(); while(T--){ a=readint(); b=readint(); x=readint(); if(x<=b){ ans=2*(a/x)+2; ll t=a-(a/x)*x; ld r=b-2*sqrt(x*x-t*t); if(r+eps>=0) ans+=(r+eps)/x+1; } else{ ld d=sqrt(x*x-b*b); ld tmp=max(2*d,(ld)x); ans=2*(ll)((a+eps)/tmp)+1; ld g=a-(ll)((a+eps)/tmp)*tmp; if(g+eps>=d){ ans++; ld c=g-d; ld rem=b-sqrt(x*x-g*g)-sqrt(x*x-c*c); if(rem+eps>=0) ans++; } } printf("%lld\n",ans); } return 0; }