叠积木

标题: 叠积木 | 时间限制: 1秒 | 内存限制: 262144K | 语言限制: 不限
有一堆长方体积木,它们的宽度和高度都相同,但长度不一。小橙想把这堆积木叠成一面墙,墙的每层可以放一个积木,也可以将两个积木拼接起来,要求每层的长度相同。若必须用完这些积木,叠成的墙最多为多少层?
一层只能放一块积木或者两块积木 
from collections import Counter
n = list(map(int, input().split()))
c = Counter(n)
n1=sorted(set(n),reverse=True)
a = []

for i in range(n1[0], 2 * n1[0]):
    f = 0
    for each in n1:
        if each != i:
            if c[each] != c[i - each]:
                f = -1
                break
            else:
                f += c[each] /2
        else:
            f += c[each]
    if f != -1:
        a.append(f)
if a:
    print(int(max(a)))
else:
    print(-1)


#华为##华为笔试#
全部评论

相关推荐

xtu大迫杰:偶遇校友,祝校友offer打牌
点赞 评论 收藏
分享
01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务