提交时间:2026-01-10 21:59:34

运行 ID: 82142

#include <iostream> #include <vector> #include <algorithm> using namespace std; struct Minister { int a, b; }; bool cmp(const Minister& m1, const Minister& m2) { return m1.a * m1.b < m2.a * m2.b; } int main() { int n; cin >> n; int king_a, king_b; cin >> king_a >> king_b; vector<Minister> ministers(n); for (int i = 0; i < n; ++i) { cin >> ministers[i].a >> ministers[i].b; } // 按 a*b 升序排序 sort(ministers.begin(), ministers.end(), cmp); // 累积乘积(这里用 unsigned long long,对于大数据会溢出,仅作示意) unsigned long long product = king_a; unsigned long long max_reward = 0; for (int i = 0; i < n; ++i) { unsigned long long reward = product / ministers[i].b; if (reward > max_reward) { max_reward = reward; } product *= ministers[i].a; } cout << max_reward << endl; return 0; }