我们可以很轻易的证明,一个满足题目条件的数组一定有以下特征:

  • 数组中不能含有数字0

  • 数组中只能含有两种,且,如果数组中含有另一种整数,那么便可以通过排列满足题目条件

根据上所述,我们可以用set容器的特性(去重)来解决该题,时间复杂度,空间复杂度

#include<iostream>
#include<set>

void set() {
    std::ios::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);
}

void solve() {
    int n;
    std::cin >> n;
    std::set<int>_set;
    int x;
    for (int i = 1; i <= n; i++) {
        std::cin >> x;
        if (x == 0) {
            std::cout << "NO";
            return;
        }
        _set.insert(x);
    }
    if (_set.size() == 2 && *_set.begin() + *_set.rbegin() == 0) std::cout << "NO";
    else std::cout << "YES";
}

int main() {
    set();
    solve();
}