#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll x,y,p,q;
ll f(ll a)
{
ll num=(a*p-x);
ll denum=(a*q-y);
if(denum<0||num<0)
{
return 0;
}
if(denum>=num)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
//cout << "Hello world!" << endl;
ll i,j ,k,t;
cin>>t;
while(t--)
{
cin>>x>>y>>p>>q;
if((double)x/y==(double)p/q)
{
cout<<"0\n";
continue;
}
if(p>=q&&x!=y)
{
cout<<"-1\n";
continue;
}
ll lo=(x/p),hi=10e9;
ll mid;
ll last=-1;
while(lo<hi)
{
mid=lo+(hi-lo)/2;
if(f(mid))
{
last=mid;
hi=mid;
}
else
{
lo=mid+1;
}
}
ll ans=(q*last-y);
cout<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwpsbCB4LHkscCxxOwpsbCBmKGxsIGEpCnsKCiAgICBsbCBudW09KGEqcC14KTsKICAgIGxsIGRlbnVtPShhKnEteSk7CiAgICBpZihkZW51bTwwfHxudW08MCkKICAgIHsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGlmKGRlbnVtPj1udW0pCiAgICB7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9Cn0KaW50IG1haW4oKQp7CiAgICAvL2NvdXQgPDwgIkhlbGxvIHdvcmxkISIgPDwgZW5kbDsKICAgIGxsIGksaiAsayx0OwogICAgY2luPj50OwogICAgd2hpbGUodC0tKQogICAgewogICAgICAgIGNpbj4+eD4+eT4+cD4+cTsKCiAgICAgICAgaWYoKGRvdWJsZSl4L3k9PShkb3VibGUpcC9xKQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8IjBcbiI7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZihwPj1xJiZ4IT15KQogICAgICAgIHsKICAgICAgICAgICAgY291dDw8Ii0xXG4iOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgbGwgbG89KHgvcCksaGk9MTBlOTsKICAgIGxsIG1pZDsKICAgIGxsIGxhc3Q9LTE7CiAgICB3aGlsZShsbzxoaSkKICAgIHsKCiAgICAgICAgbWlkPWxvKyhoaS1sbykvMjsKICAgICAKICAgICAgICBpZihmKG1pZCkpCiAgICAgICAgewogICAgICAgICAgICBsYXN0PW1pZDsKICAgICAgICAgICAgaGk9bWlkOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBsbz1taWQrMTsKICAgICAgICB9CiAgICB9CiAgICBsbCAgYW5zPShxKmxhc3QteSk7CiAgICBjb3V0PDxhbnM8PCJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K