#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.