一、题目
题目描述:
运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递。
注:快递的体积不受限制
快递数最多1000个
货车载重最大50000
二、输入输出
输入描述:
第一行输入每个快递的重量,用英文逗号隔开,如
5,10,2,11
第二行输入货车的载重量,如
20
输出描述:
输出最多能装多少个快递,如
3
三、示例
示例1:
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
5,10,2,11
20
输出:
3
四、解题思路
- 首先,我们需要读取输入的快递重量列表和货车的载重量。
- 我们将对快递重量列表进行排序,以便从最轻的快递开始装载。
- 然后,我们将遍历排序后的快递重量列表,依次将快递装载到货车中,直到货车的载重量达到或超过限制。
- 统计装载的快递数量,并输出结果。
五、参考代码
# -*- coding: utf-8 -*-
'''
@File : 2023-B-快递运输.py
@Time : 2024/01/01 00:07:51
@Author : mgc
@Version : 1.0
@Desc : None
'''
# import os
# import re
# import sys
# import copy
# import math
# import queue
# import functools
# from queue import Queue
# from collections import Counter, defaultdict
def max_packages(weights, max_load):
"""
计算最多能装多少个快递
Args:
weights (List[int]): 快递重量列表
max_load (int): 货车的载重量
Returns:
int: 最多能装多少个快递
"""
weights.sort() # 对快递重量列表进行排序
total_weight = 0 # 装载的总重量
count = 0 # 装载的快递数量
for weight in weights:
if total_weight + weight <= max_load:
total_weight += weight
count += 1
else:
break
return count
# 读取输入的快递重量列表和货车的载重量
weights = list(map(int, input().split(',')))
max_load = int(input())
# 计算最多能装多少个快递
max_packages = max_packages(weights, max_load)
# 输出最多能装多少个快递
print(max_packages)