题目描述
WZJ过生日了,他邀请了许多人来参加她的生日聚会,生日聚会中最重要的一件事情就是吃蛋糕了。WZJ共邀请了n个人,这些人的心里都想好了自己要多少克蛋糕。如果给他少了,他就会郁闷(没有吃到足够多的蛋糕)。如果给他多了,他也会郁闷(因为他不能浪费,需要把这些蛋糕都吃了,撑着了会不舒服)。一个人的郁闷指数为他想要的蛋糕克数与他实际得到的蛋糕克数之差的绝对值。WZJ想指定一个人想要的蛋糕克数作为标准,给每个人都是这么多蛋糕。聚会是件高兴的事情,同学们郁闷指数之和越小越好,现在他需要知道同学们的郁闷指数最低值是多少,请你编写程序帮他实现。
输入
共有两行:
第一行:为正整数n,表示参加聚会总共有n位同学。
第二行:为n个正整数(n<10000),表示每个人想要得到的蛋糕克数(<=1000)。
输出
只有一行:为输出所有人的郁闷指数之和的最小值。
样例输入
5
100 300 200 100 300
样例输出
400
代码实现:
#pragma GCC optimize(2); #include <bits/stdc++.h> using namespace std; typedef long long ll; int n; ll a[100086]; ll ans,s; int main() { ios::sync_with_stdio; cin.tie(0); cout.tie(0); cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+n+1); if(n%2==1) { s=a[n/2+1]; } else { s=(a[n/2]+a[n/2+1])/2; } for(int i=1;i<=n;i++) { ans+=abs(s-a[i]); } cout<<ans<<endl; return 0; }
分蛋糕(UPC)
最新推荐文章于 2024-08-28 14:35:43 发布
文章提供了一个C++代码示例,用于计算给定蛋糕需求下,如何分配使得所有人郁闷指数之和最小,适用于聚会场景中的公平分配问题。
摘要由CSDN通过智能技术生成