题解:P15639 [ICPC 2022 Tehran R] Flower Festival
有
求最先到达(
直接计算每辆车到终点的剩余距离
为避免浮点误差,对两车
遍历
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, f;
cin >> n >> f;
int maxid = -1,maxd = 1, maxv = 1;
for (int i = 1; i <= n; ++i) {
int x, v;
cin >> x >> v;
int d = f - x; // 剩余距离
if (maxid == -1) {
maxid = i; maxd = d; maxv = v;
} else {
// 比较 d/v 与 maxd/maxv:d * maxv < maxd * v 则更早到达
if (1LL * d * maxv < 1LL * maxd * v) {
maxid = i;
maxd = d;
maxv = v;
}
}
}
cout << maxid << '\n';
return 0;
}