#include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <string> #include <queue> #include <stack> #include <algorithm> const int inf = (1<<31)-1; const int MAXN = 2e5+10; const int MMAXN = 1e6+10; const int T = 1e6; using namespace std; int a[MAXN]; int b[MMAXN]; int c[MMAXN]; int n; int main() { int t,x; //cout<<T<<endl; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&x); int flag = 0; memset(b,0,sizeof(b)); for(int i=0;i<n;i++){ scanf("%d",&a[i]); if(a[i]>=0)b[a[i]]++; else c[-a[i]]++; } for(int i=0;i<n;i++){ if(x-a[i]>=0){ if(x-a[i]==a[i]&&b[a[i]]>1){ flag = 1; break; }else if(x-a[i]!=a[i]&&b[x-a[i]]){ flag = 1; break; } } else{ if(x-a[i]==a[i]&&c[-a[i]]>1){ flag = 1; break; }else if(x-a[i]!=a[i]&&c[a[i]-x]){ flag = 1; break; } } } if(flag)cout<<"YES"<<endl; else cout<<"NO"<<endl; } //cout << "Hello world!" << endl; return 0; } |
Double click to view unformatted code.