#include<stdio.h> 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]); //paixu for(i=1;i<n;i++) { for(j=0;j<n-i;j++) { if(a[j]>a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<n;i++){ if(x<a[i]) break; if(a[i]==x) {flag=1;break;} } int high=--i; int low =0; while(low<high) { if(a[high]+a[low]==x) {flag=1;break;} else if((a[high]+a[low])>x) high--; else if((a[high]+a[low])<x) low++; } if(flag==1) printf("YES\n"); else printf("NO\n"); } } |
Double click to view unformatted code.