n 个小朋友坐在一排,每个小朋友拥有 ai 个糖果,现在你要在他们之间转移糖果,使得最后所有小朋友拥有的糖果数都相同,每一次,你只能从一个小朋友身上拿走恰好两个糖果到另一个小朋友上,问最少需要移动多少次可以平分糖果,如果方案不存在输出 -1。
n 个小朋友坐在一排,每个小朋友拥有 ai 个糖果,现在你要在他们之间转移糖果,使得最后所有小朋友拥有的糖果数都相同,每一次,你只能从一个小朋友身上拿走恰好两个糖果到另一个小朋友上,问最少需要移动多少次可以平分糖果,如果方案不存在输出 -1。
每个输入包含一个测试用例。每个测试用例的第一行包含一个整数n(1 <= n <= 100),接下来的一行包含n个整数ai(1 <= ai <= 100)。
输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出-1。
4 7 15 9 5
3
while True: try: n=int(input()) ls=list(map(int,input().split())) summ=sum(ls) if summ%n==0 and sum(abs(a-summ/n)%2==0 for a in ls)==n: print(int(sum(abs((a-summ/n)/2) for a in ls)/2)) else: print(-1) except: break
n = int(input()) read_list = list(map(int, input().split())) ava = sum(read_list)/n count = 0 for num in read_list: if ava % 2 != 0 and num % 2 == 0: count = -1 break elif ava % 2 == 0 and num % 2 != 0: count = -1 break if num > ava: #如果上述条件都不满足,则必存在解 while num != ava: num -= 2 count += 1 print(count)AC的Python解,很简单明了