#include<stdio.h> #include<string.h> #define MAX 1000000+10 int a[MAX],b[MAX],c[MAX]; int main(){ int n,flag,x,tc; int i; scanf("%d",&tc); while(tc--){ scanf("%d%d",&n,&x); flag=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); for(i=0;i<n;i++){ scanf("%d",a+i); if(a[i]>=0) b[a[i]]++; else c[-a[i]]++; } for(i=0;i<n;i++){ if(x-a[i]>=0){ if(a[i]==x-a[i]&&b[a[i]]>1){flag=1;break;} if(a[i]!=x-a[i]&&b[x-a[i]]){flag=1;break;} } else { if(a[i]==x-a[i]&&c[-a[i]]>1){flag=1;break;} if(a[i]!=x-a[i]&&c[a[i]-x]){flag=1;break;} } } printf(flag?"YES\n":"NO\n"); } return 0; } |
Double click to view unformatted code.