小Y在一天的认真学习后要回家了,他有n条道路可以走,每条路要花费ti时间和ci金钱(有人收过路费)。但是T时间后就要天黑了,你能在天黑之前花最少金钱帮助小Y回家吗? 输入格式: 第一行输入一个整数n,T,表示道路的条数和天黑时间。 接下来n行,每行输入ci和ti。 输出格式: 输出1个整数,表示最少金钱,如果不能在天黑前赶到家,输出“TLE” 样例输入1: 3 70 7 60 1 80 4 50 样例输出1: 4 样例输入2: 4 3 1 1000 2 4 3 1000 4 500 样例输出2: TLE 约定: 1<=n<=1000000,0<=ci,ti,T<=1000000000。c++
时间: 2024-04-18 11:29:44 浏览: 46
你可以使用以下的C++代码来解决这个问题:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Road {
int cost;
int time;
};
bool compare(const Road& a, const Road& b) {
return a.time * b.cost < a.cost * b.time;
}
int main() {
int n, T;
cin >> n >> T;
vector<Road> roads(n);
for (int i = 0; i < n; i++) {
cin >> roads[i].cost >> roads[i].time;
}
sort(roads.begin(), roads.end(), compare);
int totalCost = 0;
int totalTime = 0;
bool canArrive = false;
for (int i = 0; i < n; i++) {
totalTime += roads[i].time;
if (totalTime <= T) {
totalCost += roads[i].cost;
canArrive = true;
} else {
break;
}
}
if (canArrive) {
cout << totalCost << endl;
} else {
cout << "TLE" << endl;
}
return 0;
}
```
你可以将输入数据放在 `main` 函数中的 `cin` 语句中,然后运行代码,即可得到相应的输出。这段代码会根据输入的道路信息和天黑时间,计算出最少金钱以帮助小Y回家,并输出结果。如果无法在天黑前到达家,会输出"TLE"。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![exe](https://img-home.csdnimg.cn/images/20210720083343.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)