这道题刚开始陷入了一个误区,总想计算两两相遇时间,然后排序对比
查了资料才知道,这原来就是贪心算法,不考虑过程,只考虑这个人肯定是第一个到学校的,值得学习
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Main m = new Main();
Scanner s = new Scanner(System.in);
while(s.hasNext()){
int count = s.nextInt();
if(count == 0){
System.exit(0);
}
int[] speed = new int[count];
int[] time = new int[count];
double min = Double.MAX_VALUE;
for(int i = 0; i < count; i++){
speed[i] = s.nextInt();
time[i] = s.nextInt();
if(time[i] >= 0){
double arriveTime = (4.5 / speed[i]) * 3600 + time[i];
if(arriveTime < min){
min = arriveTime;
}
}
}
System.out.println((int)Math.ceil(min));
}
}
}