#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void Main() { int N; cin >> N; vector A(N); int x = 0; for(int i = 0;i < N;i++) { cin >> A[i]; x ^= A[i]; } if(x) { cout << "No\n"; return; } if(N >= 5002) { cout << "Yes\n"; return; } if(N > 2) { sort(A.begin(),A.end()); for(int i = 0;i < N;i++) { if(i > 0 && A[i] == A[i - 1]) { cout << "Yes\n"; return; } } } vector> dp(1 << 13,vector(2)); dp[0][0] = 1; for(int i = 1;i < N;i++) { vector> n_dp(1 << 13,vector(2)); for(int j = 0;j < 1 << 13;j++) { for(int k = 0;k < 2;k++) { if(dp[j][k]) { n_dp[j][1] = 1; n_dp[j ^ A[i]][k] = 1; } } } swap(n_dp,dp); if(dp[A[0]][1]) { cout << "Yes\n"; return; } } cout << "No\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }