top1编程
← 返回题目
题解

Ride to Office

1 条题解

  • 0
    @ 2026-7-28 22:45:16
    #include<bits/stdc++.h>  
    using namespace std;  
    
    // 声明一个二维数组a用于存储每个人的速度和提前时间,t数组用于存储每个人的到达时间  
    int t[10001];  
    
    int main()  
    {  
    	int a,b;
    	int n; // n表示输入的参与人数  
    	// 循环读取每组输入,直到n为0时停止  
    	while(cin >> n && n != 0)  
    	{  
    		int mint =INT_MAX; // mint用于记录最小到达时间,初始化为一个很大的数  
    		// 循环读取每个人的速度和提前时间  
    		for(int i = 1; i <= n; i++)  
    		{  
    			cin >> a >>b; // a为速度,b为提前时间  
    			// 如果提前时间大于等于0,则开始计算到达时间  
    			if(b >= 0) // 先走的人不管  
    			{  
    				// 计算此人到达时间并存入t数组  
    				// ceil(4500 * 3.6 / a[i][0])计算行走4500米所需的时间,单位转换为小时(假设3500为定值)  
    				// 加上提前时间a[i][1](假设也是小时)  
    				t[i] = ceil(4500 * 3.6 / a) + b;  
    				// 更新mint为最小到达时间  
    				if(mint > t[i]) {
    					mint = t[i];
    				}  
    			}  
    		}  
    		// 输出所有人中最小到达时间  
    		cout << mint << endl;  
    	}  
    	return 0; // 程序结束  
    }
    
    • 1