#include <stdio.h> #include <stdlib.h> #include<ctype.h> #include<string.h> #include<math.h> void charusort(int a[], int n) { int temp, i, j; for (i = 1; i < n; i++) { temp = a[i]; for (j = i - 1; temp < a[j] && j >= 0; j--) { a[j + 1] = a[j]; } a[j + 1] = temp; } } int main() { int n, x, t, i, j; scanf("%d", &t); while (t--) { scanf("%d%d", &n, &x); int a[100000] = { 0 }; for (i = 0; i < n; i++) scanf("%d", &a[i]); charusort(a,n); int flag = 0; i = 0; j = n - 1; while(i<j) { if (a[i] + a[j] == x) { flag = 1; break; } else if (a[i] + a[j] < x) i++; else if (a[i] + a[j] > x) j--; } if (flag == 1) printf("YES\n"); else printf("NO\n"); } return 0; } |
Double click to view unformatted code.