华为OD在线OJ:
已购买本专栏用户,请私信博主开通账号,在线刷题!!!
在线OJ:立即刷题
题库专栏:2023华为OD机试(A卷+B卷)(C++JavaJSPy)
题目描述
有一堆长方体积木,它们的高度和宽度都相同,但长度不一。
小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同。
若必须用完这些积木,叠成的墙最多为多少层?
如下是叠成的一面墙的图示,积木仅按宽和高所在的面进行拼接。
输入描述
输入为一行,为各个积木的长度,数字为正整数,并由空格分隔。积木的数量和长度都不超过5000。
输出描述
输出一个数字,为墙的最大层数,如果无法按要求叠成每层长度一致的墙,则输出-1。
ACM输入输出模式
如果你经常使用Leetcode,会知道letcode是不需要编写输入输出函数的。但是华为OD机考使用的是 ACM 模式,需要手动编写输入和输出。
所以最好在牛-客上提前熟悉这种模式。例如C++使用cin/cout
,python使用input()/print()
。JavaScript使用node的readline()
和console.log()
。Java 使用sacnner/system.out.print()
用例
输入 | 3 6 3 3 3 |
输出 | 3 |
说明 | 以 6 为底的墙,第一层为 6 ,第二层为 3 + 3,第三层 3 + 3。 |