题解:P15639 [ICPC 2022 Tehran R] Flower Festival

· · 题解

我们知道第 i 辆车离玫瑰广场的距离为 f-x_i,那么这辆车行驶到玫瑰广场所用的时间就是 \frac{f-x_i}{v_i},我们只需要将所有汽车到达玫瑰广场所需的时间按升序排序后,输出用时最短的汽车的编号即可。

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ft first
#define sd second
#define fs(i,x,y) for(int i=(x);i<=(y);i++)
#define fj(i,x,y) for(int i=(x);i>=(y);i--)
#define len(s) s.length()
#define mht(a,b,x,y) (fabs(x-a)+fabs(y-b))
#define juli(a,b,x,y) (sqrt((x-a)*(x-a)+(y-b)*(y-b)))
#define numb(c) (c-'0')
struct Node{
    int i;
    double t;
}a[105];
bool cmp(Node a,Node b){
    return a.t<b.t;
}
signed main(){
    std::ios::sync_with_stdio(false);
    cin.tie(0); 
    cout.tie(0);
    int n,f,x,v;
    cin>>n>>f;
    fs(i,1,n){
        cin>>x>>v;
        a[i].i=i;
        a[i].t=(f-x)*1.0/v;
    }
    sort(a+1,a+n+1,cmp);
    cout<<a[1].i;
    return 0;
}