网易-分苹果

网友投稿 256 2022-09-15

网易-分苹果

​​只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。

输入描述:

每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。

输出描述:

输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。

示例1

输入

复制

47 15 9 5

输出

复制

3

题解:

#include #include using namespace std;int main(){ int n; while (cin >> n){ vector a(n, 0); int sum = 0; for (int i = 0; i < n; i++){ cin >> a[i]; sum += a[i]; } if (sum % n != 0){ cout << "-1" << endl; } else { bool isOk = true; int avg = sum / n; int cnt = 0; for (int i = 0; i < n; i++){ if ((a[i] - avg) % 2 != 0){ cout << "-1" << endl; isOk = false; break; } } if (isOk == true){ for (int i = 0; i < n; i++){ if (a[i] - avg > 0){ cnt += (a[i] - avg) / 2; } } cout << cnt << endl; } } } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【机器学习】算法原理详细推导与实现(三):朴素贝叶斯
下一篇:华北黄淮气温继续下降 24日起中东部将迎大范围降水!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~