刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

分配

题目描述:

疫情期间,社会爱心人士及单位组织为疫情捐赠了大量物资。其中有n箱口罩物资需要小蓝为2个疫情重灾区分配。每箱口罩的数量也不完全相等,且只能整箱分配。为了公平,尽量使2个疫情重灾区分得的口罩数量相等,也就是2个疫情区分得的口罩数量差值最小。

例如:n为3,3箱口罩数量分别为200、300、110,按照要求分配,2个疫情区分得的口罩数量分别为310(200+110)和300。

这时小蓝犯愁了,不知道如何才能使2个疫情重灾区分得的口罩数量尽量接近。请你编写程序帮助小蓝解决这个问题。

输入描述:

第一行输入一个正整数n(n≤10),表示有n箱口罩。

第二行输入n个不完全相等的正整数(100≤每个正整数≤1000),表示每箱口罩的数量。正整数之间以一个空格隔开。

输出描述:

输出两个正整数,分别表示2个重灾区分得口罩的数量,两个正整数之间一个空格隔开,且如果两个正整数不相同,需按照从大到小输出。


样例输入:

3
200 300 110

样例输出:

310 300

使用微信搜索喵呜刷题,轻松应对考试!

答案:

br />310 300

解析:

【喵呜刷题小喵解析】
首先,我们需要理解题目的要求。题目要求将n箱口罩分配给两个疫情重灾区,使得两个重灾区得到的口罩数量尽量接近。

为了解决这个问题,我们可以采用贪心算法。具体步骤如下:

1. 首先,将n箱口罩按照口罩数量的多少进行排序。
2. 然后,从口罩数量最多的箱子开始,依次将口罩分配给两个重灾区。每次分配时,将口罩数量最多的箱子中的口罩平均分配给两个重灾区,直到该箱子的口罩数量为零或者无法再平均分配为止。
3. 重复步骤2,直到所有的口罩都被分配完毕。

在这个问题中,我们不需要考虑其他复杂的算法,因为贪心算法已经足够解决这个问题。

对于样例输入,我们有3箱口罩,数量分别为200、300、110。按照口罩数量的多少进行排序后,我们得到300、200、110。然后,我们将300平均分配给两个重灾区,得到每个重灾区150个口罩。接着,我们将200平均分配给两个重灾区,得到每个重灾区100个口罩。最后,我们将110平均分配给两个重灾区,得到每个重灾区55个口罩。因此,两个重灾区得到的口罩数量分别为310和300。
创作类型:
原创

本文链接:分配 题目描述: 疫情期间,社会爱心人士及单位组织为疫情捐赠了大量物资。其中有n箱口罩物资需要小蓝为

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share