func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long int MAX = 1e6 + 5;   const int N = 2e5 + 5;   const long long int mod = 1e9 + 7;   const long long int mx = 1e16;   bool comp(const int a, const int b) { return a > b; }   const double PI = 2 * acos(0.0);   long long int fac[N];   void pre() {     fac[0] = 1LL;     for (long long int i = 1; i < N; i++) {       fac[i] = 1LL * i * fac[i - 1];       if (fac[i] >= mod) fac[i] %= mod;     }   }   long long int power(long long int a, long long int b) {     long long int x = 1;     while (b) {       if (b & 1) {         x *= a;         if (x >= mod) x %= mod;       }       a *= a;       if (a >= mod) a %= mod;       b >>= 1;     }     return x;   }   long long int inv(long long int k) { return power(k, mod - 2); }   string strngtoint(int n) {     ostringstream str1;     str1 << n;     string ans = str1.str();     return ans;   }   bool fun(long long int z, long long int x, long long int y, long long int p,            long long int q) {     if (p * z >= x && q * z - p * z >= y - x)       return true;     else       return false;   }   int main() {     long long t;     scanf( %lld n , &t);     while (t--) {       long long int x, y, p, q;       scanf( %lld %lld %lld %lld , &x, &y, &p, &q);       long long int low = -1, high = 1e9, mid;       if (!fun(high, x, y, p, q)) {         cout << -1 << endl;         continue;       }       while (high - low > 1) {         mid = (low + high) / 2;         if (fun(mid, x, y, p, q)) {           high = mid;         } else {           low = mid;         }       }       cout << high * q - y << endl;     }   }   