#include<bits/stdc++.h>
usingnamespacestd;#define int long long
intx,y,p,q;boolcheck(intmd){returnp*md-x<=q*md-y&&p*md>=x;}voidsolve(){scanf("%lld%lld%lld%lld",&x,&y,&p,&q);if(p==0){if(x)puts("-1");elseputs("0");return;}intl=1,r=1e10,mid,ans=-1;while(l<=r){mid=l+r>>1;if(check(mid))r=mid-1,ans=mid;elsel=mid+1;}if(ans==-1)puts("-1");elseprintf("%lld\n",ans*q-y);}signedmain(){signedT;scanf("%d",&T);while(T--)solve();return0;}