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