#include #include #include using namespace std; struct Problem { long long time_per_question, count; }; bool compare(Problem a, Problem b) { return a.time_per_question < b.time_per_question; } long long max_problems_solved(long long A, long long B, long long C, long long D, long long P, long long Q, long long R, long long S, long long T) { vector problems = {{P, A}, {Q, B}, {R, C}, {S, D}}; // Sort problems by time per question (greedy approach: solve easiest first) sort(problems.begin(), problems.end(), compare); long long solved = 0, time_used = 0; // Try solving problems greedily for (auto &p : problems) { long long max_can_solve = min(p.count, (T - time_used) / p.time_per_question); solved += max_can_solve; time_used += max_can_solve * p.time_per_question; if (time_used >= T) break; // No more time left } return solved; } int main() { long long A, B, C, D, P, Q, R, S, T; cin >> A >> B >> C >> D >> P >> Q >> R >> S >> T; cout << max_problems_solved(A, B, C, D, P, Q, R, S, T) << endl; return 0; }