试着想一下不难发现只有两种情况会NO,一种是本身就含有0,另一种是这个序列全是某个数和其相反数,紧接着我们写出代码
#include <iostream>
#include<bits/stdc++.h>
#include <vector>
using namespace std;
#define int long long
//1 -1 -1
signed main(){
int n;cin>>n;
vector<int> a(n+1);
map<int,int> mp;
for(int i=1;i<=n;i++){
cin>>a[i];
mp[a[i]]++;
if(a[i]==0){
cout<<"NO";
return 0;
}
}
for(int i=1;i<=n;i++){
if(mp[a[i]]+mp[-a[i]]==n&&mp[a[i]]&&mp[-a[i]]){
cout<<"NO";
return 0;
}
}
cout<<"YES";
return 0;
}

京公网安备 11010502036488号