Python编程实现,魔法师的四种元素平衡。
题目简述:魔法师有四种属性,当四种属性的值相同时最好。在修炼时,魔法师可以通过将任意两种属性转化为任意一种其他属性,来进行平衡性调整。试问魔法师当前的四种属性值,能否通过修炼调整为最好的属性状态。如果能输出属性值总和,不能输出-1.
思路:
求四种属性值的均值,从均值开始判断,能否调整属性值成功。
def method(nums):
sumnum = sum(nums)
avg = sumnum // 4
# print(avg)
sub = 0
for i in range(avg, -1, -1): # 这部分遍历可以二分实现,降低复杂度
sub = 0
for item in nums:
if item > i:
sub += (item - i)
# print(sub, "sub")
count = 0
for item in nums:
if i>item:
count += (i - item)*2
if sub == count:
return i
# print(count, "count")
return -1
if __name__ == '__main__':
nums = list(map(int, input().strip().split()))
nums.sort()
res = method(nums)
if res == -1:
print(res)
else:
print(res*4)