首页 > 解决方案 > 糖果分发问题 NPTEL。显示一个整数,表示使每个数据包大小相等所需的最小移动次数?

问题描述

* SRS 教授正在与他的课程的一组学生一起旅行。他拿了几包糖果分发给学生。不幸的是,小包的大小不一样,教授希望以公正的方式分发糖果。一个解决方案是打开所有的小包,将一些糖果从较大的小包移到较小的小包中,这样每个小包中的糖果数量相等。您的任务是确定此类移动的最小数量,以确保所有包具有相同数量的糖果。

(一个移动表示从一个包中挑选一个糖果并将其移动到另一个) 输入格式:输入的第一行包含以空格分隔的整数,指示每个包的大小。输出格式:显示一个整数,表示使每个数据包大小相等所需的最小移动次数。如果无法均衡,则显示 -1 作为输出。*

例子:

输入:

1 1 1 1 6 输出:

4 输入:

3 4 输出:

-1

标签: pythonalgorithmnumpysorting

解决方案


IPYNB 格式化代码

d=[int(i) for i in input().split()]
s=sum(d)
result=0
if s%len(d)==0:
  for i in range(len(d)):
    if d[i]<(s//len(d)):
      result=result+((s//len(d))-d[i])
  print(result,end='')
else:
  print('-1',end='')

推荐阅读