Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <iomanip>
- #include <queue>
- #include <cmath>
- #include <algorithm>
- #include <tuple>
- #include <iomanip>
- #include <stdio.h>
- #include <numeric>
- #include <map>
- #include <math.h>
- #define int long long
- #define ull unsigned long long
- #define all(a) a.begin(), a.end()
- #define pii pair<int, int>
- #define pb push_back
- using namespace std;
- void solve() {
- int k, n, a, b;
- cin >> k >> n >> a >> b;
- int ans = 0;
- if ((int)k / b <= n) {
- cout << -1 << "\n";
- } else {
- // while ((int)k/a < n) {
- // n--;
- // k-=b;
- // }
- // ans = k/a;
- // if (k % a == 0) {
- // ans--;
- // }
- // cout << min(ans, n) << "\n";
- int r = n, l = 0, mid;
- while (r - l > 1) {
- mid = (l + r) / 2;
- // cout << mid * a + (n - mid) * b << "\n";
- // cout << l << " " << r << "\n";
- if (mid * a + (n - mid) * b >= k) {
- r = mid;
- } else {
- l = mid;
- }
- }
- // cout << l << " " << r << " " << mid << "\n";
- if(r * a + (n - r) * b == k) cout << r - 1;
- else if (r * a + (n - r) * b < k) cout << r;
- else if (mid * a +(n - mid) * b == k) cout << mid - 1;
- else if (mid * a +(n - mid) * b < k) cout << mid;
- else if (l * a + (n - l) * b == k) cout << l - 1;
- else if (l * a + (n - l) * b < k) cout << l;
- cout << "\n";
- }
- }
- signed main()
- {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- // cout << fixed << setprecision(3);
- int q;
- cin >> q;
- // vector<int> a(n);
- // for (int i = 0; i < n; i++) cin >> a[i];
- for (int w = 0; w < q; w++) solve();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement