/*数列S中有n个整数,判断S中是否存在两个数A、B,使之和等于X。 第一行为T,输入包括T组测试数据。 每组数据第一行包括两个数字n和X,第二行有n个整数,表示数列S,(1<n<=100000)*/ #include<stdio.h> #include<math.h> int main(){ int t; scanf("%d",&t); int i,j,mask; for(i=0;i<t;i++){ int n,x; scanf("%d %d",&n,&x); int a[100000]; for(j=0;j<n;j++){ scanf("%d",&a[j]); } for(i=0;i<n;i++){ mask=0; for(j=i+1;j<n;j++){ if(a[i]+a[j]==x){ mask=1; break; } } if(mask==1){ break; } } if(mask==1){ printf("YES\n"); }else{ printf("NO\n"); } } return 0; } |
Double click to view unformatted code.