func_code_string: #include <bits/stdc++.h>   using namespace std;   int t;   long long a, b, c, d;   long long solve(long long x) {     long long times = x / d + 1;     long long sum = (x / d + 1) * a;     long long finished;     if (x < c) {       finished = 0;     } else {       finished = (x - c) / d + 1;     }     long long left = times - finished;     long long a1 = x - (x / d) * d;     sum -= left * a1 * b + left * (left - 1) / 2 * d * b;     sum -= finished * b * c;     return sum;   }   int main() {     ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);     cin >> t;     while (t--) {       cin >> a >> b >> c >> d;       if (d >= c) {         if (a > b * c) {           cout << -1 << endl;         } else {           cout << a << endl;         }       } else {         if (a > b * c) {           cout << -1 << endl;         } else {           long long l = 0, r = 1e6 / d;           while (l < r - 5) {             long long ml = (l + r) / 2;             long long mr = (ml + r) / 2;             if (solve(ml * d) <= solve(mr * d)) {               l = ml;             } else {               r = mr;             }           }           long long mx = 0;           for (long long i = l; i <= r; i++) {             mx = max(mx, solve(i * d));           }           cout << mx << endl;         }       }     }     return 0;   }   