分苹果(不理解,请留下评论,必回)
分苹果
http://www.nowcoder.com/questionTerminal/a174820de48147d489f64103af152709
统计需要移动的苹果的总数。
移动一次,会有4个苹果被挪动。
sumapple/4=移动次数。
include<stdio.h>
include<math.h>
int main()
{
int const n ;scanf("%d",&n);
int sz[n];
int sum=0,ave;
int sumapple=0;
for(int i=0;i<n;i++){
scanf("%d",&sz[i]);
sum+=sz[i];
}//求总数
if(sum%n!=0){
printf("-1\n");return 0;
}//判断能否平分苹果
ave=sum/n;
for(int i=0;i<n-1;i++){
if(sz[i]%2!=sz[i+1]%2){printf("-1\n");return 0;}
}//判断初始状态是否都为基数,或者都为偶数
for(int i=0;i<n;i++){
sumapple+=abs(sz[i]-ave);
if(sumapple%2!=0){printf("-1\n");return 0;}
}//求需要被移动的苹果数量
sumapple/=4;
//移动一次,拿出两个,放入两个
printf("%d",sumapple);
return 0;
}