#include <algorithm> #include <cctype> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <map> #include <set> #include <stack> #include <string> #include <vector> using namespace std; int main(void) { int arr[5000005]; int t; int n, x; scanf("%d", &t); while (t--) { set<int> input; int flag = 0; scanf("%d %d", &n, &x); input.clear(); memset(arr, 0, sizeof(arr)); for (int i = 0; i < n; i++) { int tmp; scanf("%d", &tmp); arr[tmp]++; input.insert(tmp); } for (auto i : input) { if (x >= i) { if (x - i != i) { if (arr[x - i] > 0) { flag = 1; break; } } else { if (arr[x - i] > 1) { flag = 1; break; } } } else { break; } } if (flag) printf("YES\n"); else printf("NO\n"); } } |
Double click to view unformatted code.