分析:
逆向思维:(1)题目问的是让我们“加”巧克力使得每个人最终巧克力数量一样。这等价于“减”巧克力使得每个人最终巧克力数量一样。(2)用“减”的方法,最终的目标是使得每个人的巧克力数量为原输入数组的最小值或者任意小于该值但不为负。
代码 (Python 2.7):
def solve(n, a, target):
return sum(map(lambda x: (x - target) / 5 + ((x - target) % 5) / 2 + ((x - target) % 5) % 2, a))
t = int(raw_input())
for t_i in xrange(t):
n = int(raw_input())
a = map(int, raw_input().split())
target1 = min(a)
target2, target3, target4, target5 = target1 - 1, target1 - 2, target1 - 3, target1 - 4
print min([solve(n, a, target) for target in [target1, target2, target3, target4, target5] if target >= 0])