思路:
Charles在某个时刻T遇到一个速度比他更大的人,说明他已经骑了T秒了,他在最后必定是和速度最快的一个人以同一速度同时到达学校,所以只要在骑行过程中找出最大速度即可,他到学校所要花的时间就是遇到这个速度最大的人的时刻T1加上以最大速度骑行到学校需要花的时间T2之和。
C++代码:
#include <iostream>
#include<queue>
#include <math.h>
using namespace std;
//charles在某时刻遇到一个速度比他更快的人,说明他已经骑了这么久了,所以他最后一定是和速度最快的人同时到学校。只要找出最大速度即可。
int main()
{
int n, v, t;
double time, min;
while(1)
{
cin>>n;
if (n == 0) break;
min = 4.5 * 3600;
while(n--)
{
cin>>v>>t;
if (t < 0) continue;
time = ceil(4.5 / v * 3600)+ t;//ceil向上取整,此处进行km/h与m/s的换算
if (time <= min)
{
min = time;
}
}
cout<<min<<endl;
}
return 0;
}