【题目描述】
时间不多啦,所以小明只能做一道题。
小明知道每道题需要花费的时间和完成后的快乐度。他希望做单位时间内取得快乐度最多的那一道题。如果有快乐度相同的,他希望做题号较小的那一道。
【输入】
第一行一个数n,为题目个数。(1≤n≤106)
接下来n行每一行两个数a,b,为耗费的时间和快乐度,都不大于109。
【输出】
一个数,小明选择的题目题号。
【输入样例】
2
3 5
4 8
【输出样例】
2
#include <iostream>
#include <iomanip>
#include <limits>
int main() {
// 读入题目数量
int n;
std::cin >> n;
int bestIndex = -1;
double bestHappinessPerTime = -std::numeric_limits<double>::max();
for (int i = 1; i <= n; ++i) {
long long time, happiness;
std::cin >> time >> happiness;
// 计算单位时间内的快乐度
double happinessPerTime = static_cast<double>(happiness) / time;
// 选择最大快乐度,若相同选择题号较小
if (happinessPerTime > bestHappinessPerTime) {
bestHappinessPerTime = happinessPerTime;
bestIndex = i;
}
}
// 输出选择的题目题号
std::cout << bestIndex << std::endl;
return 0;
}