7-1 武林盟主

在传说中的江湖中,各大帮派要选武林盟主了,如果龙飞能得到超过一半的帮派的支持就可以当选,而每个帮派的结果又是由该帮派帮众投票产生的,如果某个帮派超过一半的帮众支持龙飞,则他将赢得该帮派的支持。现在给出每个帮派的帮众人数,请问龙飞至少需要赢得多少人的支持才可能当选武林盟主?

输入格式:

测试数据有多组,处理到文件尾。每组测试先输入一个整数n(1≤n≤20),表示帮派数,然后输入n个正整数,表示每个帮派的帮众人数ai​(0<ai​≤100)。

输出格式:

对于每组数据输出一行,表示龙飞当选武林盟主至少需要赢得支持的帮众人数。

输入样例:

3 5 7 5
4 6 6 7 5

输出样例:

6
11

提交代码: 

try:
    n,*a = map(int,input().split())
    while len(a)>0:
        a.sort()
        sum = 0
        for i in range(0,int(n/2)+1):
            sum += int(a[i]//2)+1
        print(sum)
        n, *a = map(int, input().split())
except EOFError:
    pass

思路: 最开始理解这个题目就花了我不少功夫。最终理解到的结果是,给出多个不同帮派数、帮众数的平行世界,计算这些平行世界下当选为武林盟主需要的最少支持者人数。其中,每个世界都需要超过一半的帮派支持,而每个帮派内部的支持者也需要超过一半。因此,为了人数尽可能少,需要对列表进行排序,把人数多的帮派排在后面。起初只有try之内的代码,提交测试后显示EOFError,于是添加了try:...except:...模式,将错误处理置于except之中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值