| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 82142 | sh25_zhuhy | 国王游戏(Day 1) | C++ | 解答错误 | 0 MS | 252 KB | 1007 | 2026-01-10 21:59:34 |
#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; }