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