import java.util.Arrays;

import java.util.Scanner;

/**

* n 个小朋友坐在一排,每个小朋友拥有 ai 个糖果,现在你要在他们之间转移糖果,使得最后所有小朋友拥有的糖果数都相同,

* 每一次,你只能从一个小朋友身上拿走恰好两个糖果到另一个小朋友上,

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

* 接下来的一行包含n个整数ai(1 <= ai <= 100)。

* 问最少需要移动多少次可以平分糖果,如果方案不存在输出 -1。

* 例: 输入 4

*           7 15 9 5

*      输出 3

*      移动方式:

*         第一次移动  7 13 9 7

*         第二次移动  9 11 9 7

*         第三次移动  9 9 9 9

* Create by DbL on 2020/1/9

*/

public class Main {

public static void main(String[] args) {

Scanner in1 = new Scanner(System.in);

in1.useDelimiter("\n");

int n  = in1.nextInt();

String nums = in1.next();

CandyAllocation(n,nums);

}

/**

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

* @param n  表示n个小朋友

* @param nums  字符串  每个小朋友手里的苹果数量 以空格隔开

*/

public static void CandyAllocation(int n,String nums){

if(n<1){

System.out.println(-1);

return;

}

if(nums.length()<1){

System.out.println(-1);

return;

}

// 对输入的苹果数量进行拆分并存储到一个数组中

int[] nums_int = new int[0];

// 苹果的总数

int num_sum = 0;

String[] nums_str = nums.split(" ");

for (int i = 0; i

nums_int = Arrays.copyOf(nums_int,nums_int.length+1);

nums_int[nums_int.length-1] = Integer.parseInt(nums_str[i]);

num_sum += Integer.parseInt(nums_str[i]);

}

// 如果数组的长度与输入的小朋友数量不等 输入有误 输出-1

if(nums_str.length != n){

System.out.println(-1);

return;

}

// 算出苹果能否被小朋友们以整数平分

int remainder = num_sum%n;

// 如果存在余数  表示没有方案 输出 -1

if(remainder>0){

System.out.println(-1);

return;

}

// 算出平均数  如果存在小朋友手里的苹果数量减去平均值的绝对值不能被2整除 则也表示没有方案

int avg_num = num_sum/n;

for (int i = 0; i

//如果确定了方案不存在 结束循环  输出-1

if(Math.abs(nums_int[i]-avg_num)%2 == 1){

System.out.println(-1);

return;

}

}

// 移动过程中 只需要移动苹果数量大于平均数的小朋友到苹果数量小于平均数的小朋友

// 所以,计算出所有小于平均数的值与平均数的差之和对每次移动的数量2做除即可

int differ_count = 0;

for (int i = 0; i

if(nums_int[i]

differ_count += avg_num-nums_int[i];

}

}

// 输出最终结果

System.out.println(differ_count/2);

}

}

python分糖果_分糖果_平安科技笔试题_牛客网相关推荐

  1. python简单实践作业答案_python入门实践四:爬取牛客网面试专项练习题及答案

    说明:个人练手python用. 操作系统:window10 x64 IDE:Pycharm 2017.2.2 Python版本:3.6.2 目标 牛客网是一个IT笔试面试的平台,提供了很多题库,今天我 ...

  2. 平安科技java在线考试_平安科技笔试题.docx

    一单项选择题 下面代码输出什么? public class A { static{ System, out. print ("A"); } A(){ System, out. pr ...

  3. Python面试题整理-牛客网

    1.[单选题]关于Python内存管理,下列说法错误的是  A. 变量不必事先声明 B. 变量无须先创建和赋值而直接使用 C. 变量无须指定类型 D. 可以使用del释放资源 解析1:B Python ...

  4. 牛客网----分糖果、分子弹

    题目来源:牛客网 给从左至右排好队的小朋友们分糖果, 要求: 1.每个小朋友都有一个得分,任意两个相邻的小朋友,得分较高的所得的糖果必须大于得分较低的,相等则不作要求. 2.每个小朋友至少获得一个糖果 ...

  5. python牛客网编程题_【面经】小米软件开发一面(python)面经 2020 2020

    作者:JessyTsui https://www.nowcoder.com/discuss/580721?type=2&order=0&pos=15&page=1&ch ...

  6. python牛客网编程题_一波优秀的自学编程语言网站

    网课已经开设两三个月了 同学们上网课的效果怎么样呢? 特别是学编程的同学 没有了学校的学习氛围 没有了老师面对面教学指导 你是否为了编程而焦头烂额,生无可恋呢? 没事,现在同学们的福利来啦! 下面是给 ...

  7. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

  8. Java牛客项目课_仿牛客网讨论区_第八章

    文章目录 第八章.项目发布与总结 8.1. 单元测试 8.2.项目监控 8.3.项目部署 宝塔面板.yum.rpm.压缩包 安装 unzip.Java1.8.Maven.MySQL.Redis.Kaf ...

  9. day2:牛客网 糖果俱乐部

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 中国地质大学(武汉)坐落于南望山下毗邻东湖风景区.为了庆祝"华为杯"中国地质大学(武汉)第十七届ICPC程序设计大赛暨华 ...

最新文章

  1. 用Python远程登陆服务器的最佳实践
  2. vsftpd安装配置
  3. 华硕服务器主板z8na-d6开关位置,华硕双路服务器主板Z8NA-D6
  4. 凶猛的飞禽 超跑奥迪
  5. [转]asp.net权限认证:HTTP基本认证(http basic)
  6. LightOJ 1093 - Ghajini 线段树
  7. PIL.Image convert to numpy array
  8. 一个select元素自定义设计的新思路:appearance: none之后利用符号制造小箭头
  9. linux信号学习02
  10. 搞了个30天学习量化的数据资料,可以bt做全球。数据链接白送
  11. 《跟我一起写Makefile》读书笔记(1)
  12. Android原生系统API自带dp、px、sp单位转换
  13. php 数据映射,数据映射模式(Data Mapper)
  14. 强化学习10-Deep Q Learning-fix target
  15. log4j+flume+HDFS实现日志存储
  16. 智能合约语言 Solidity 教程系列8 - Solidity API 1
  17. 思科交换机配置命令(详细命令总结归纳)
  18. [经验教程]在拼多多上发起拼单和参与拼单有什么区别?
  19. 虚拟机怎么连云服务器,虚拟机怎么连接云服务器
  20. 嵌入式系统硬件体系设计(一)

热门文章

  1. 派生类中构造函数与虚构函数的研究
  2. C#后台访问前台Html控件的方法
  3. 数据库中什么是主键,什么是外键?
  4. SQL Server 2005 常用数据类型详解
  5. 计算机网络核心知识(中)
  6. Java获得随机数字
  7. springboot学习笔记(四)
  8. 深大转专业计算机,这所高校2020年1042人申请转专业!申请转出人数最多的竟是医学部...
  9. Android 插件框架实现思路及原理
  10. java获取当前工作目录