【华为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; }