PTA(每日一题)7-59 武林盟主

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

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

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

输入样例:

3 5 7 5
4 6 6 7 5

输出样例:

6
11

代码:

try:
    while True:
        n, *lst = map(int, input().split())
        i = 0
        result = 0
        lst.sort()  # 从小到大排序就能保证最后的支持帮众人数最少
        while i <= n//2:  # 帮派超过半数
            result += (int(lst[i]//2) + 1)  # 每个帮派的人数超过半数
            i += 1
        print(result)
except EOFError:
    pass

在这里插入图片描述


版权声明:本文为weixin_44196222原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。