社区讨论

60分,求救,必关

P1080[NOIP 2012 提高组] 国王游戏参与者 5已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@mhj1t8kv
此快照首次捕获于
2025/11/03 19:20
4 个月前
此快照最后确认于
2025/11/03 19:20
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
struct Minister {
    long long l, r;  // 左手、右手
};
bool cmp(const Minister& a, const Minister& b) {
    return a.l * a.r < b.l * b.r;
}
int main() {
    int n;
    cin >> n;
    long long king_l, king_r;
    cin >> king_l >> king_r;
    vector<Minister> mins(n);
    for (int i = 0; i < n; ++i) {
        cin >> mins[i].l >> mins[i].r;
    }  
    sort(mins.begin(), mins.end(), cmp);
    long long max_gold = 0;
    long long prefix = king_l;
    for (int i = 0; i < n; ++i) {
        long long gold = prefix / mins[i].r;
        if (gold > max_gold) {
            max_gold = gold;
        }
        prefix *= mins[i].l;
    }
    
    cout << max_gold << endl;
    return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...