#include<stdio.h>
int main()
{
int n,flag=1,count=0;
scanf("%d",&n);
long long a;
int value[n];
for(int i=0;i<n;i++){
scanf("%lld",&a);
if(a==0)
{
flag=0;
break;
}
if(flag){
int t=1;
for(int j=0;j<count;j++){
if(a==value[j]){
t=0;break;
}
}
if(t&&count<3){
value[count++]=a;
}
}
}
if(!flag){
printf("NO");
}
else if(count==3||count==1){
printf("YES");
}
else if(count==2){
if(value[0]+value[1]==0){
printf("NO");
}
else {
printf("YES");
}
}
return 0;
}
看出现了几个数据(不重复的),出现一次(不为零)和3次及其以上的或者出现两次不互为相反数的那么就输出YES,出现两次相加和为0或者出现一次为零,那么输出NO.

京公网安备 11010502036488号