【题目描述】时间不多啦所以小明只能做一道题。小明知道每道题需要花费的时间和完成后的快乐度。他希望做单位时间内取得快乐度最多的那一道题。如果有快乐度相同的他希望做题号较小的那一道。【输入】第一行一个数n为题目个数。1≤n≤106接下来n行每一行两个数ab为耗费的时间和快乐度都不大于109。【输出】一个数小明选择的题目题号。【输入样例】23 54 8【输出样例】2用c++做
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Problem {
int id;
int time;
int happiness;
};
bool compare(Problem p1, Problem p2) {
if (p1.happiness == p2.happiness) {
return p1.id < p2.id;
}
return p1.happiness > p2.happiness;
}
int main() {
int n;
cin >> n;
vector<Problem> problems(n);
for (int i = 0; i < n; i++) {
problems[i].id = i + 1;
cin >> problems[i].time >> problems[i].happiness;
}
sort(problems.begin(), problems.end(), compare);
cout << problems[0].id << endl;
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/ibCY 著作权归作者所有。请勿转载和采集!