1.有偶数有奇数肯定不行,因为奇/偶+2(偶)=奇/偶,所以不能凑出一样的来。
2.(所有数相加的sum) % n!=0 && sum/n也就是平均数avg和其他四个数的奇偶性质不同,肯定不行。
其他肯定可以。
统计差的个数就可以了。
#include<iostream> using namespace std; const int maxn=101; int a[maxn]; int main(){ int n,j=0,o=0,sum=0,avg; bool res=true; cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; sum+=a[i]; if(a[i]%2==0)o++; else j++; }avg=sum/n; if(o==n){ if(sum%n!=0||sum/n%2!=0)res=false; }else if(j==n){ if(sum%n!=0||sum/n%2==0)res=false; }else{ res=false; } if(!res){ cout<<-1<<endl; }else{ int up=0,down=0; for(int i=0;i<n;i++){ if(a[i]>avg){ up+=(a[i]-avg)/2; }else if(a[i]<avg){ down+=(avg-a[i])/2; } } if(up==down)cout<<up<<endl; else cout<<-1<<endl; } return 0; }