#include<stdio.h> #include<stdlib.h> int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b; } int main(){ int t; scanf("%d",&t); while(t>0){ int n,X,flag=0; scanf("%d %d",&n,&X); int a[n],i,j; for(i=0;i<n;i++){ scanf("%d",&a[i]); } qsort(a,n,sizeof(a[n]),cmp); 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"); t--; } return 0; } |
Double click to view unformatted code.