/** * https://github.com/matchamgmg/kyopro/tree/main */ #include #include using namespace std; using namespace atcoder; using ll = long long; using ld = long double; using mint = modint998244353; // using mint = modint1000000007; template using pq = priority_queue>; // 大きい順 template using pq_g = priority_queue, greater>; // 小さい順 #define rep(i, s, n) for (int i = (s); i < (int)(n); i++) #define rrep(i, s, n) for (int i = (n - 1); i >= (int)(s); i--) #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() void pyes() { cout << "Yes" << endl; } void pno() { cout << "No" << endl; } void YN(bool x) { cout << (x ? "Yes" : "No") << endl; } template void v_cout(const vector &a) { int n = a.size(); rep(i, 0, n) cout << a[i] << " "; cout << endl; } template void vv_cout(const vector &a) { int n = a.size(); rep(i, 0, n) { rep(j, 0, a[i].size()) cout << a[i][j] << " "; cout << endl; } } bool grid_check(int x, int y, int X, int Y) { return (0 <= x && x < X && 0 <= y && y < Y); } template bool chmax(T &a, T b) { if (a < b) { a = b; return true; } else { return false; } } template bool chmin(T &a, T b) { if (a > b) { a = b; return true; } else { return false; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); ll R, P, Q; cin >> R >> P >> Q; ll A, B, C, D; cin >> A >> B >> C >> D; auto f = [&](ll m) -> bool { ll rest = max(A - m, 0LL) + max(B - m, 0LL) + max(C - m, 0LL) + D; ll must = max(m - A, 0LL) + max(m - B, 0LL) + max(m - C, 0LL); if (must > rest) { return false; } ll cost = must * Q; ll r = R - cost; if (r < 0) { return false; } return r >= m * P; }; ll ok = 0, ng = 1e9 + 1; while (ng - ok > 1) { ll mid = (ok + ng) / 2; (f(mid) ? ok : ng) = mid; } cout << ok << endl; }