编译不出来 求助!!!
查看原帖
编译不出来 求助!!!
1593129
youjia2014楼主2024/12/10 19:23

请求各位大佬帮我debug:

思路:

读取每位大臣左手上的整数leftHandleftHand和右手上的整数rightHandrightHand,并将它们存储在一个结构体MinisterMinister中。根据大臣手上的数值进行降序排序。从而降低后面大臣获得的奖赏。初始化一个变量来存储当前乘积,初始值为国王左手上的整数。遍历排序后的大臣列表,对于每位大臣,计算当前乘积除以该大臣右手上的数值,得到该大臣的奖赏,并更新最大奖赏值。

程序:

#include <iostream>

#include <vector>
#include <algorithm>
using namespace std;

int n,kingLeft,kingRight; 

struct Minister {
    int leftHand;
    int rightHand;
};

bool compareMinisters(const Minister &m1, const Minister &m2) {
    return m1.leftHand < m2.leftHand;
}

int main() {
    cin >> n;
    cin >> kingLeft >> kingRight;
    vector<Minister> ministers(n);
    for (int i = 0; i < n; ++i) {
        cin >> ministers[i].leftHand >> ministers[i].rightHand;
    }
    
    sort(ministers.begin(), ministers.end(), compareMinisters);
    
    int maxReward = 0;
    long long product = kingLeft;
    for (const auto &minister : ministers) {
        int reward = product / minister.rightHand;
        if (reward > maxReward) {
            maxReward = reward;
        }
        product *= minister.leftHand;
    }
    
    cout << maxReward << endl;
    return 0;
}
2024/12/10 19:23
加载中...