有大佬可以帮我看看I题吗。可以过91%的样例,不知道哪儿错了

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int a[maxn];
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    int ans=0;
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]); 
        ans^=a[i];
    }
    if(ans=!0){
        printf("YES\n");
    }else{
        for(int i=1;i<=n;i++){
            if(a[i]>=k){
                if(((ans^a[i])^(a[i]-k))){
                     ans=((ans^a[i])^(a[i]-k));
                     break;
                }
            }
        }
        if(ans){
            printf("YES\n");
        }else {
            printf("NO\n");
        }
    }
    return 0;
}