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