【华为OD机试真题 C++】快递运输 【2022 Q4 | 100分】
前言
■ 题目描述
【快递运输】
运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递。
注:快递的体积不受限制
快递数最多1000个
货车载重最大50000
输入描述
第一行输入每个快递的重量
用英文逗号隔开
如 5,10,2,11
第二行输入货车的载重量
如 20
输出描述
输出最多能装多少个快递
如 3
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
5,10,2,11
20
输出
3
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> nums;
void getNums(vector<int> &nums)
{
char ch;
int x = 0;
while (true) {
ch = getchar();
if (isdigit(ch)) {
x = (x << 3 + x << 1) + (ch - 0);
} else {
nums.emplace_back(x);
x = 0;
if (ch ==
) return;
}
}
}
int main()
{
getNums(nums);
int limits;
std::cin >> limits;
ll sum = 0;
ll count = 0;
sort(nums.begin(), nums.end());
for (int i = 0; i < nums.size() - 1; i++) {
sum += nums[i];
count++;
if (sum > limits) break;
}
std::cout << count << endl;
return 0;
}
