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